/* automatically generated by rust-bindgen 0.56.0 */

#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage, Align> {
    storage: Storage,
    align: [Align; 0],
}
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
    #[inline]
    pub const fn new(storage: Storage) -> Self {
        Self { storage, align: [] }
    }
}
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
where
    Storage: AsRef<[u8]> + AsMut<[u8]>,
{
    #[inline]
    pub fn get_bit(&self, index: usize) -> bool {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = self.storage.as_ref()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        byte & mask == mask
    }
    #[inline]
    pub fn set_bit(&mut self, index: usize, val: bool) {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = &mut self.storage.as_mut()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        if val {
            *byte |= mask;
        } else {
            *byte &= !mask;
        }
    }
    #[inline]
    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        let mut val = 0;
        for i in 0..(bit_width as usize) {
            if self.get_bit(i + bit_offset) {
                let index = if cfg!(target_endian = "big") {
                    bit_width as usize - 1 - i
                } else {
                    i
                };
                val |= 1 << index;
            }
        }
        val
    }
    #[inline]
    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        for i in 0..(bit_width as usize) {
            let mask = 1 << i;
            let val_bit_is_set = val & mask == mask;
            let index = if cfg!(target_endian = "big") {
                bit_width as usize - 1 - i
            } else {
                i
            };
            self.set_bit(index + bit_offset, val_bit_is_set);
        }
    }
}
pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
pub const _SAL_VERSION: u32 = 20;
pub const __SAL_H_VERSION: u32 = 180000000;
pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
pub const _CRT_PACKING: u32 = 8;
pub const _HAS_EXCEPTIONS: u32 = 1;
pub const _STL_LANG: u32 = 0;
pub const _HAS_CXX17: u32 = 0;
pub const _HAS_CXX20: u32 = 0;
pub const _HAS_NODISCARD: u32 = 0;
pub const WCHAR_MIN: u32 = 0;
pub const WCHAR_MAX: u32 = 65535;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 65535;
pub const _ARGMAX: u32 = 100;
pub const _CRT_INT_MAX: u32 = 2147483647;
pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
pub const _CRT_HAS_CXX17: u32 = 0;
pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
pub const __STDC_SECURE_LIB__: u32 = 200411;
pub const __GOT_SECURE_LIB__: u32 = 200411;
pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 1;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
pub const _MAX_ITOSTR_BASE16_COUNT: u32 = 9;
pub const _MAX_ITOSTR_BASE10_COUNT: u32 = 12;
pub const _MAX_ITOSTR_BASE8_COUNT: u32 = 12;
pub const _MAX_ITOSTR_BASE2_COUNT: u32 = 33;
pub const _MAX_LTOSTR_BASE16_COUNT: u32 = 9;
pub const _MAX_LTOSTR_BASE10_COUNT: u32 = 12;
pub const _MAX_LTOSTR_BASE8_COUNT: u32 = 12;
pub const _MAX_LTOSTR_BASE2_COUNT: u32 = 33;
pub const _MAX_ULTOSTR_BASE16_COUNT: u32 = 9;
pub const _MAX_ULTOSTR_BASE10_COUNT: u32 = 11;
pub const _MAX_ULTOSTR_BASE8_COUNT: u32 = 12;
pub const _MAX_ULTOSTR_BASE2_COUNT: u32 = 33;
pub const _MAX_I64TOSTR_BASE16_COUNT: u32 = 17;
pub const _MAX_I64TOSTR_BASE10_COUNT: u32 = 21;
pub const _MAX_I64TOSTR_BASE8_COUNT: u32 = 23;
pub const _MAX_I64TOSTR_BASE2_COUNT: u32 = 65;
pub const _MAX_U64TOSTR_BASE16_COUNT: u32 = 17;
pub const _MAX_U64TOSTR_BASE10_COUNT: u32 = 21;
pub const _MAX_U64TOSTR_BASE8_COUNT: u32 = 23;
pub const _MAX_U64TOSTR_BASE2_COUNT: u32 = 65;
pub const CHAR_BIT: u32 = 8;
pub const SCHAR_MIN: i32 = -128;
pub const SCHAR_MAX: u32 = 127;
pub const UCHAR_MAX: u32 = 255;
pub const CHAR_MIN: i32 = -128;
pub const CHAR_MAX: u32 = 127;
pub const MB_LEN_MAX: u32 = 5;
pub const SHRT_MIN: i32 = -32768;
pub const SHRT_MAX: u32 = 32767;
pub const USHRT_MAX: u32 = 65535;
pub const INT_MIN: i32 = -2147483648;
pub const INT_MAX: u32 = 2147483647;
pub const UINT_MAX: u32 = 4294967295;
pub const LONG_MIN: i32 = -2147483648;
pub const LONG_MAX: u32 = 2147483647;
pub const ULONG_MAX: u32 = 4294967295;
pub const EXIT_SUCCESS: u32 = 0;
pub const EXIT_FAILURE: u32 = 1;
pub const _WRITE_ABORT_MSG: u32 = 1;
pub const _CALL_REPORTFAULT: u32 = 2;
pub const _OUT_TO_DEFAULT: u32 = 0;
pub const _OUT_TO_STDERR: u32 = 1;
pub const _OUT_TO_MSGBOX: u32 = 2;
pub const _REPORT_ERRMODE: u32 = 3;
pub const RAND_MAX: u32 = 32767;
pub const _CVTBUFSIZE: u32 = 349;
pub const _MAX_PATH: u32 = 260;
pub const _MAX_DRIVE: u32 = 3;
pub const _MAX_DIR: u32 = 256;
pub const _MAX_FNAME: u32 = 256;
pub const _MAX_EXT: u32 = 256;
pub const _MAX_ENV: u32 = 32767;
pub const EPERM: u32 = 1;
pub const ENOENT: u32 = 2;
pub const ESRCH: u32 = 3;
pub const EINTR: u32 = 4;
pub const EIO: u32 = 5;
pub const ENXIO: u32 = 6;
pub const E2BIG: u32 = 7;
pub const ENOEXEC: u32 = 8;
pub const EBADF: u32 = 9;
pub const ECHILD: u32 = 10;
pub const EAGAIN: u32 = 11;
pub const ENOMEM: u32 = 12;
pub const EACCES: u32 = 13;
pub const EFAULT: u32 = 14;
pub const EBUSY: u32 = 16;
pub const EEXIST: u32 = 17;
pub const EXDEV: u32 = 18;
pub const ENODEV: u32 = 19;
pub const ENOTDIR: u32 = 20;
pub const EISDIR: u32 = 21;
pub const ENFILE: u32 = 23;
pub const EMFILE: u32 = 24;
pub const ENOTTY: u32 = 25;
pub const EFBIG: u32 = 27;
pub const ENOSPC: u32 = 28;
pub const ESPIPE: u32 = 29;
pub const EROFS: u32 = 30;
pub const EMLINK: u32 = 31;
pub const EPIPE: u32 = 32;
pub const EDOM: u32 = 33;
pub const EDEADLK: u32 = 36;
pub const ENAMETOOLONG: u32 = 38;
pub const ENOLCK: u32 = 39;
pub const ENOSYS: u32 = 40;
pub const ENOTEMPTY: u32 = 41;
pub const EINVAL: u32 = 22;
pub const ERANGE: u32 = 34;
pub const EILSEQ: u32 = 42;
pub const STRUNCATE: u32 = 80;
pub const EDEADLOCK: u32 = 36;
pub const EADDRINUSE: u32 = 100;
pub const EADDRNOTAVAIL: u32 = 101;
pub const EAFNOSUPPORT: u32 = 102;
pub const EALREADY: u32 = 103;
pub const EBADMSG: u32 = 104;
pub const ECANCELED: u32 = 105;
pub const ECONNABORTED: u32 = 106;
pub const ECONNREFUSED: u32 = 107;
pub const ECONNRESET: u32 = 108;
pub const EDESTADDRREQ: u32 = 109;
pub const EHOSTUNREACH: u32 = 110;
pub const EIDRM: u32 = 111;
pub const EINPROGRESS: u32 = 112;
pub const EISCONN: u32 = 113;
pub const ELOOP: u32 = 114;
pub const EMSGSIZE: u32 = 115;
pub const ENETDOWN: u32 = 116;
pub const ENETRESET: u32 = 117;
pub const ENETUNREACH: u32 = 118;
pub const ENOBUFS: u32 = 119;
pub const ENODATA: u32 = 120;
pub const ENOLINK: u32 = 121;
pub const ENOMSG: u32 = 122;
pub const ENOPROTOOPT: u32 = 123;
pub const ENOSR: u32 = 124;
pub const ENOSTR: u32 = 125;
pub const ENOTCONN: u32 = 126;
pub const ENOTRECOVERABLE: u32 = 127;
pub const ENOTSOCK: u32 = 128;
pub const ENOTSUP: u32 = 129;
pub const EOPNOTSUPP: u32 = 130;
pub const EOTHER: u32 = 131;
pub const EOVERFLOW: u32 = 132;
pub const EOWNERDEAD: u32 = 133;
pub const EPROTO: u32 = 134;
pub const EPROTONOSUPPORT: u32 = 135;
pub const EPROTOTYPE: u32 = 136;
pub const ETIME: u32 = 137;
pub const ETIMEDOUT: u32 = 138;
pub const ETXTBSY: u32 = 139;
pub const EWOULDBLOCK: u32 = 140;
pub const _CRT_INTERNAL_STDIO_SYMBOL_PREFIX: &'static [u8; 1usize] = b"\0";
pub const _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION: u32 = 1;
pub const _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR: u32 = 2;
pub const _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS: u32 = 4;
pub const _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 8;
pub const _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS: u32 = 16;
pub const _CRT_INTERNAL_SCANF_SECURECRT: u32 = 1;
pub const _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS: u32 = 2;
pub const _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 4;
pub const _UPPER: u32 = 1;
pub const _LOWER: u32 = 2;
pub const _DIGIT: u32 = 4;
pub const _SPACE: u32 = 8;
pub const _PUNCT: u32 = 16;
pub const _CONTROL: u32 = 32;
pub const _BLANK: u32 = 64;
pub const _HEX: u32 = 128;
pub const _LEADBYTE: u32 = 32768;
pub const _ALPHA: u32 = 259;
pub const _SH_DENYRW: u32 = 16;
pub const _SH_DENYWR: u32 = 32;
pub const _SH_DENYRD: u32 = 48;
pub const _SH_DENYNO: u32 = 64;
pub const _SH_SECURE: u32 = 128;
pub const SH_DENYRW: u32 = 16;
pub const SH_DENYWR: u32 = 32;
pub const SH_DENYRD: u32 = 48;
pub const SH_DENYNO: u32 = 64;
pub const _S_IFMT: u32 = 61440;
pub const _S_IFDIR: u32 = 16384;
pub const _S_IFCHR: u32 = 8192;
pub const _S_IFIFO: u32 = 4096;
pub const _S_IFREG: u32 = 32768;
pub const _S_IREAD: u32 = 256;
pub const _S_IWRITE: u32 = 128;
pub const _S_IEXEC: u32 = 64;
pub const S_IFMT: u32 = 61440;
pub const S_IFDIR: u32 = 16384;
pub const S_IFCHR: u32 = 8192;
pub const S_IFREG: u32 = 32768;
pub const S_IREAD: u32 = 256;
pub const S_IWRITE: u32 = 128;
pub const S_IEXEC: u32 = 64;
pub const MONO_ALLOCATOR_VTABLE_VERSION: u32 = 1;
pub const MONO_ZERO_LEN_ARRAY: u32 = 1;
pub const BUFSIZ: u32 = 512;
pub const _NSTREAM_: u32 = 512;
pub const _IOB_ENTRIES: u32 = 3;
pub const EOF: i32 = -1;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 64;
pub const _IONBF: u32 = 4;
pub const L_tmpnam: u32 = 260;
pub const L_tmpnam_s: u32 = 260;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const SEEK_SET: u32 = 0;
pub const FILENAME_MAX: u32 = 260;
pub const FOPEN_MAX: u32 = 20;
pub const _SYS_OPEN: u32 = 20;
pub const TMP_MAX: u32 = 2147483647;
pub const TMP_MAX_S: u32 = 2147483647;
pub const _TMP_MAX_S: u32 = 2147483647;
pub const SYS_OPEN: u32 = 20;
pub const _MONO_METADATA_LOADER_H_: u32 = 1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoDomain {
    _unused: [u8; 0],
}
pub type MonoDomain = _MonoDomain;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoJitInfo {
    _unused: [u8; 0],
}
pub type MonoJitInfo = _MonoJitInfo;
pub type va_list = *mut ::std::os::raw::c_char;
extern "C" {
    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
}
pub type size_t = ::std::os::raw::c_ulonglong;
pub type __vcrt_bool = bool;
pub type wchar_t = ::std::os::raw::c_ushort;
extern "C" {
    pub fn __security_init_cookie();
}
extern "C" {
    pub fn __security_check_cookie(_StackCookie: usize);
}
extern "C" {
    pub fn __report_gsfailure(_StackCookie: usize);
}
extern "C" {
    pub static mut __security_cookie: usize;
}
pub type int_least8_t = ::std::os::raw::c_schar;
pub type int_least16_t = ::std::os::raw::c_short;
pub type int_least32_t = ::std::os::raw::c_int;
pub type int_least64_t = ::std::os::raw::c_longlong;
pub type uint_least8_t = ::std::os::raw::c_uchar;
pub type uint_least16_t = ::std::os::raw::c_ushort;
pub type uint_least32_t = ::std::os::raw::c_uint;
pub type uint_least64_t = ::std::os::raw::c_ulonglong;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_int;
pub type int_fast32_t = ::std::os::raw::c_int;
pub type int_fast64_t = ::std::os::raw::c_longlong;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_uint;
pub type uint_fast32_t = ::std::os::raw::c_uint;
pub type uint_fast64_t = ::std::os::raw::c_ulonglong;
pub type intmax_t = ::std::os::raw::c_longlong;
pub type uintmax_t = ::std::os::raw::c_ulonglong;
pub type __crt_bool = bool;
extern "C" {
    pub fn _invalid_parameter_noinfo();
}
extern "C" {
    pub fn _invalid_parameter_noinfo_noreturn();
}
extern "C" {
    pub fn _invoke_watson(
        _Expression: *const wchar_t,
        _FunctionName: *const wchar_t,
        _FileName: *const wchar_t,
        _LineNo: ::std::os::raw::c_uint,
        _Reserved: usize,
    );
}
pub type errno_t = ::std::os::raw::c_int;
pub type wint_t = ::std::os::raw::c_ushort;
pub type wctype_t = ::std::os::raw::c_ushort;
pub type __time32_t = ::std::os::raw::c_long;
pub type __time64_t = ::std::os::raw::c_longlong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_data_public {
    pub _locale_pctype: *const ::std::os::raw::c_ushort,
    pub _locale_mb_cur_max: ::std::os::raw::c_int,
    pub _locale_lc_codepage: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout___crt_locale_data_public() {
    assert_eq!(
        ::std::mem::size_of::<__crt_locale_data_public>(),
        16usize,
        concat!("Size of: ", stringify!(__crt_locale_data_public))
    );
    assert_eq!(
        ::std::mem::align_of::<__crt_locale_data_public>(),
        8usize,
        concat!("Alignment of ", stringify!(__crt_locale_data_public))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__crt_locale_data_public>()))._locale_pctype as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_pctype)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__crt_locale_data_public>()))._locale_mb_cur_max as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_mb_cur_max)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__crt_locale_data_public>()))._locale_lc_codepage as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_lc_codepage)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_pointers {
    pub locinfo: *mut __crt_locale_data,
    pub mbcinfo: *mut __crt_multibyte_data,
}
#[test]
fn bindgen_test_layout___crt_locale_pointers() {
    assert_eq!(
        ::std::mem::size_of::<__crt_locale_pointers>(),
        16usize,
        concat!("Size of: ", stringify!(__crt_locale_pointers))
    );
    assert_eq!(
        ::std::mem::align_of::<__crt_locale_pointers>(),
        8usize,
        concat!("Alignment of ", stringify!(__crt_locale_pointers))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__crt_locale_pointers>())).locinfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_pointers),
            "::",
            stringify!(locinfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__crt_locale_pointers>())).mbcinfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_pointers),
            "::",
            stringify!(mbcinfo)
        )
    );
}
pub type _locale_t = *mut __crt_locale_pointers;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _Mbstatet {
    pub _Wchar: ::std::os::raw::c_ulong,
    pub _Byte: ::std::os::raw::c_ushort,
    pub _State: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__Mbstatet() {
    assert_eq!(
        ::std::mem::size_of::<_Mbstatet>(),
        8usize,
        concat!("Size of: ", stringify!(_Mbstatet))
    );
    assert_eq!(
        ::std::mem::align_of::<_Mbstatet>(),
        4usize,
        concat!("Alignment of ", stringify!(_Mbstatet))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_Mbstatet>()))._Wchar as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_Wchar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_Mbstatet>()))._Byte as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_Byte)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_Mbstatet>()))._State as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_State)
        )
    );
}
pub type mbstate_t = _Mbstatet;
pub type time_t = __time64_t;
pub type rsize_t = size_t;
extern "C" {
    pub fn _calloc_base(_Count: size_t, _Size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn calloc(
        _Count: ::std::os::raw::c_ulonglong,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _callnewh(_Size: size_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _expand(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _free_base(_Block: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn free(_Block: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn _malloc_base(_Size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn malloc(_Size: ::std::os::raw::c_ulonglong) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _msize_base(_Block: *mut ::std::os::raw::c_void) -> size_t;
}
extern "C" {
    pub fn _msize(_Block: *mut ::std::os::raw::c_void) -> size_t;
}
extern "C" {
    pub fn _realloc_base(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn realloc(
        _Block: *mut ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _recalloc_base(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _recalloc(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_free(_Block: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn _aligned_malloc(_Size: size_t, _Alignment: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_offset_malloc(
        _Size: size_t,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_msize(
        _Block: *mut ::std::os::raw::c_void,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _aligned_offset_realloc(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_offset_recalloc(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_realloc(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
        _Alignment: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_recalloc(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
        _Alignment: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
pub type max_align_t = f64;
pub type _CoreCrtSecureSearchSortCompareFunction = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_void,
        arg2: *const ::std::os::raw::c_void,
        arg3: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
pub type _CoreCrtNonSecureSearchSortCompareFunction = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const ::std::os::raw::c_void,
        arg2: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn bsearch_s(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: rsize_t,
        _SizeOfElements: rsize_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn qsort_s(
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: rsize_t,
        _SizeOfElements: rsize_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn bsearch(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: size_t,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn qsort(
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: size_t,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    );
}
extern "C" {
    pub fn _lfind_s(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _lfind(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _lsearch_s(
        _Key: *const ::std::os::raw::c_void,
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _lsearch(
        _Key: *const ::std::os::raw::c_void,
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn lfind(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn lsearch(
        _Key: *const ::std::os::raw::c_void,
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _itow_s(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _itow(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ltow_s(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ltow(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ultow_s(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ultow(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcstod(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f64;
}
extern "C" {
    pub fn _wcstod_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn wcstol(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _wcstol_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn wcstoll(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoll_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn wcstoul(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _wcstoul_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn wcstoull(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _wcstoull_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn wcstold(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f64;
}
extern "C" {
    pub fn _wcstold_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn wcstof(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f32;
}
extern "C" {
    pub fn _wcstof_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Locale: _locale_t,
    ) -> f32;
}
extern "C" {
    pub fn _wtof(_String: *const wchar_t) -> f64;
}
extern "C" {
    pub fn _wtof_l(_String: *const wchar_t, _Locale: _locale_t) -> f64;
}
extern "C" {
    pub fn _wtoi(_String: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtoi_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtol(_String: *const wchar_t) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _wtol_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _wtoll(_String: *const wchar_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wtoll_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _i64tow_s(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _i64tow(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ui64tow_s(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ui64tow(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wtoi64(_String: *const wchar_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wtoi64_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoi64(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoi64_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoui64(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _wcstoui64_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _wfullpath(
        _Buffer: *mut wchar_t,
        _Path: *const wchar_t,
        _BufferCount: size_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wmakepath_s(
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Drive: *const wchar_t,
        _Dir: *const wchar_t,
        _Filename: *const wchar_t,
        _Ext: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wmakepath(
        _Buffer: *mut wchar_t,
        _Drive: *const wchar_t,
        _Dir: *const wchar_t,
        _Filename: *const wchar_t,
        _Ext: *const wchar_t,
    );
}
extern "C" {
    pub fn _wperror(_ErrorMessage: *const wchar_t);
}
extern "C" {
    pub fn _wsplitpath(
        _FullPath: *const wchar_t,
        _Drive: *mut wchar_t,
        _Dir: *mut wchar_t,
        _Filename: *mut wchar_t,
        _Ext: *mut wchar_t,
    );
}
extern "C" {
    pub fn _wsplitpath_s(
        _FullPath: *const wchar_t,
        _Drive: *mut wchar_t,
        _DriveCount: size_t,
        _Dir: *mut wchar_t,
        _DirCount: size_t,
        _Filename: *mut wchar_t,
        _FilenameCount: size_t,
        _Ext: *mut wchar_t,
        _ExtCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wdupenv_s(
        _Buffer: *mut *mut wchar_t,
        _BufferCount: *mut size_t,
        _VarName: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wgetenv(_VarName: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wgetenv_s(
        _RequiredCount: *mut size_t,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _VarName: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wputenv(_EnvString: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wputenv_s(_Name: *const wchar_t, _Value: *const wchar_t) -> errno_t;
}
extern "C" {
    pub fn _wsearchenv_s(
        _Filename: *const wchar_t,
        _VarName: *const wchar_t,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wsearchenv(
        _Filename: *const wchar_t,
        _VarName: *const wchar_t,
        _ResultPath: *mut wchar_t,
    );
}
extern "C" {
    pub fn _wsystem(_Command: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _swab(
        _Buf1: *mut ::std::os::raw::c_char,
        _Buf2: *mut ::std::os::raw::c_char,
        _SizeInBytes: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn exit(_Code: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _exit(_Code: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _Exit(_Code: ::std::os::raw::c_int);
}
extern "C" {
    pub fn quick_exit(_Code: ::std::os::raw::c_int);
}
extern "C" {
    pub fn abort();
}
extern "C" {
    pub fn _set_abort_behavior(
        _Flags: ::std::os::raw::c_uint,
        _Mask: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
pub type _onexit_t = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
extern "C" {
    pub fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _onexit(_Func: _onexit_t) -> _onexit_t;
}
extern "C" {
    pub fn at_quick_exit(
        arg1: ::std::option::Option<unsafe extern "C" fn()>,
    ) -> ::std::os::raw::c_int;
}
pub type _purecall_handler = ::std::option::Option<unsafe extern "C" fn()>;
pub type _invalid_parameter_handler = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const wchar_t,
        arg2: *const wchar_t,
        arg3: *const wchar_t,
        arg4: ::std::os::raw::c_uint,
        arg5: usize,
    ),
>;
extern "C" {
    pub fn _set_purecall_handler(_Handler: _purecall_handler) -> _purecall_handler;
}
extern "C" {
    pub fn _get_purecall_handler() -> _purecall_handler;
}
extern "C" {
    pub fn _set_invalid_parameter_handler(
        _Handler: _invalid_parameter_handler,
    ) -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _get_invalid_parameter_handler() -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _set_thread_local_invalid_parameter_handler(
        _Handler: _invalid_parameter_handler,
    ) -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _get_thread_local_invalid_parameter_handler() -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _set_error_mode(_Mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _errno() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_errno(_Value: ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn _get_errno(_Value: *mut ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn __doserrno() -> *mut ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _set_doserrno(_Value: ::std::os::raw::c_ulong) -> errno_t;
}
extern "C" {
    pub fn _get_doserrno(_Value: *mut ::std::os::raw::c_ulong) -> errno_t;
}
extern "C" {
    pub fn __sys_errlist() -> *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __sys_nerr() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn perror(_ErrMsg: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn __p__pgmptr() -> *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __p__wpgmptr() -> *mut *mut wchar_t;
}
extern "C" {
    pub fn __p__fmode() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn _get_pgmptr(_Value: *mut *mut ::std::os::raw::c_char) -> errno_t;
}
extern "C" {
    pub fn _get_wpgmptr(_Value: *mut *mut wchar_t) -> errno_t;
}
extern "C" {
    pub fn _set_fmode(_Mode: ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn _get_fmode(_PMode: *mut ::std::os::raw::c_int) -> errno_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _div_t {
    pub quot: ::std::os::raw::c_int,
    pub rem: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__div_t() {
    assert_eq!(
        ::std::mem::size_of::<_div_t>(),
        8usize,
        concat!("Size of: ", stringify!(_div_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_div_t>(),
        4usize,
        concat!("Alignment of ", stringify!(_div_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_div_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_div_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_div_t>())).rem as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_div_t),
            "::",
            stringify!(rem)
        )
    );
}
pub type div_t = _div_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ldiv_t {
    pub quot: ::std::os::raw::c_long,
    pub rem: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout__ldiv_t() {
    assert_eq!(
        ::std::mem::size_of::<_ldiv_t>(),
        8usize,
        concat!("Size of: ", stringify!(_ldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_ldiv_t>(),
        4usize,
        concat!("Alignment of ", stringify!(_ldiv_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ldiv_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ldiv_t>())).rem as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
pub type ldiv_t = _ldiv_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _lldiv_t {
    pub quot: ::std::os::raw::c_longlong,
    pub rem: ::std::os::raw::c_longlong,
}
#[test]
fn bindgen_test_layout__lldiv_t() {
    assert_eq!(
        ::std::mem::size_of::<_lldiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(_lldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_lldiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_lldiv_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_lldiv_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_lldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_lldiv_t>())).rem as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_lldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
pub type lldiv_t = _lldiv_t;
extern "C" {
    pub fn abs(_Number: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn labs(_Number: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn llabs(_Number: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _abs64(_Number: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _byteswap_ushort(_Number: ::std::os::raw::c_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn _byteswap_ulong(_Number: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _byteswap_uint64(_Number: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn div(_Numerator: ::std::os::raw::c_int, _Denominator: ::std::os::raw::c_int) -> div_t;
}
extern "C" {
    pub fn ldiv(_Numerator: ::std::os::raw::c_long, _Denominator: ::std::os::raw::c_long)
        -> ldiv_t;
}
extern "C" {
    pub fn lldiv(
        _Numerator: ::std::os::raw::c_longlong,
        _Denominator: ::std::os::raw::c_longlong,
    ) -> lldiv_t;
}
extern "C" {
    pub fn _rotl(
        _Value: ::std::os::raw::c_uint,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _lrotl(
        _Value: ::std::os::raw::c_ulong,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _rotl64(
        _Value: ::std::os::raw::c_ulonglong,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _rotr(
        _Value: ::std::os::raw::c_uint,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _lrotr(
        _Value: ::std::os::raw::c_ulong,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _rotr64(
        _Value: ::std::os::raw::c_ulonglong,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn srand(_Seed: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rand() -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LDOUBLE {
    pub ld: [::std::os::raw::c_uchar; 10usize],
}
#[test]
fn bindgen_test_layout__LDOUBLE() {
    assert_eq!(
        ::std::mem::size_of::<_LDOUBLE>(),
        10usize,
        concat!("Size of: ", stringify!(_LDOUBLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_LDOUBLE>(),
        1usize,
        concat!("Alignment of ", stringify!(_LDOUBLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDOUBLE>())).ld as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDOUBLE),
            "::",
            stringify!(ld)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRT_DOUBLE {
    pub x: f64,
}
#[test]
fn bindgen_test_layout__CRT_DOUBLE() {
    assert_eq!(
        ::std::mem::size_of::<_CRT_DOUBLE>(),
        8usize,
        concat!("Size of: ", stringify!(_CRT_DOUBLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRT_DOUBLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRT_DOUBLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRT_DOUBLE>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRT_DOUBLE),
            "::",
            stringify!(x)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRT_FLOAT {
    pub f: f32,
}
#[test]
fn bindgen_test_layout__CRT_FLOAT() {
    assert_eq!(
        ::std::mem::size_of::<_CRT_FLOAT>(),
        4usize,
        concat!("Size of: ", stringify!(_CRT_FLOAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRT_FLOAT>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRT_FLOAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRT_FLOAT>())).f as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRT_FLOAT),
            "::",
            stringify!(f)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LONGDOUBLE {
    pub x: f64,
}
#[test]
fn bindgen_test_layout__LONGDOUBLE() {
    assert_eq!(
        ::std::mem::size_of::<_LONGDOUBLE>(),
        8usize,
        concat!("Size of: ", stringify!(_LONGDOUBLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_LONGDOUBLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_LONGDOUBLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LONGDOUBLE>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LONGDOUBLE),
            "::",
            stringify!(x)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LDBL12 {
    pub ld12: [::std::os::raw::c_uchar; 12usize],
}
#[test]
fn bindgen_test_layout__LDBL12() {
    assert_eq!(
        ::std::mem::size_of::<_LDBL12>(),
        12usize,
        concat!("Size of: ", stringify!(_LDBL12))
    );
    assert_eq!(
        ::std::mem::align_of::<_LDBL12>(),
        1usize,
        concat!("Alignment of ", stringify!(_LDBL12))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDBL12>())).ld12 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDBL12),
            "::",
            stringify!(ld12)
        )
    );
}
extern "C" {
    pub fn atof(_String: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
    pub fn atoi(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn atol(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn atoll(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _atoi64(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _atof_l(_String: *const ::std::os::raw::c_char, _Locale: _locale_t) -> f64;
}
extern "C" {
    pub fn _atoi_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atol_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _atoll_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _atoi64_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _atoflt(
        _Result: *mut _CRT_FLOAT,
        _String: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atodbl(
        _Result: *mut _CRT_DOUBLE,
        _String: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoldbl(
        _Result: *mut _LDOUBLE,
        _String: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoflt_l(
        _Result: *mut _CRT_FLOAT,
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atodbl_l(
        _Result: *mut _CRT_DOUBLE,
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoldbl_l(
        _Result: *mut _LDOUBLE,
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strtof(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
    ) -> f32;
}
extern "C" {
    pub fn _strtof_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> f32;
}
extern "C" {
    pub fn strtod(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn _strtod_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn strtold(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn _strtold_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn strtol(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _strtol_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn strtoll(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _strtoll_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtoul(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _strtoul_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strtoull(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strtoull_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strtoi64(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _strtoi64_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _strtoui64(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strtoui64_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _itoa_s(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _itoa(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ltoa_s(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ltoa(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ultoa_s(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ultoa(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _i64toa_s(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _i64toa(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ui64toa_s(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ui64toa(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ecvt_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ecvt(
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _fcvt_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Value: f64,
        _FractionalDigitCount: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _fcvt(
        _Value: f64,
        _FractionalDigitCount: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _gcvt_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _gcvt(
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ___mb_cur_max_func() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ___mb_cur_max_l_func(_Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mblen(_Ch: *const ::std::os::raw::c_char, _MaxCount: size_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mblen_l(
        _Ch: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mbstrlen(_String: *const ::std::os::raw::c_char) -> size_t;
}
extern "C" {
    pub fn _mbstrlen_l(_String: *const ::std::os::raw::c_char, _Locale: _locale_t) -> size_t;
}
extern "C" {
    pub fn _mbstrnlen(_String: *const ::std::os::raw::c_char, _MaxCount: size_t) -> size_t;
}
extern "C" {
    pub fn _mbstrnlen_l(
        _String: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn mbtowc(
        _DstCh: *mut wchar_t,
        _SrcCh: *const ::std::os::raw::c_char,
        _SrcSizeInBytes: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mbtowc_l(
        _DstCh: *mut wchar_t,
        _SrcCh: *const ::std::os::raw::c_char,
        _SrcSizeInBytes: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mbstowcs_s(
        _PtNumOfCharConverted: *mut size_t,
        _DstBuf: *mut wchar_t,
        _SizeInWords: size_t,
        _SrcBuf: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn mbstowcs(
        _Dest: *mut wchar_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _mbstowcs_s_l(
        _PtNumOfCharConverted: *mut size_t,
        _DstBuf: *mut wchar_t,
        _SizeInWords: size_t,
        _SrcBuf: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _mbstowcs_l(
        _Dest: *mut wchar_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn wctomb(_MbCh: *mut ::std::os::raw::c_char, _WCh: wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wctomb_l(
        _MbCh: *mut ::std::os::raw::c_char,
        _WCh: wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wctomb_s(
        _SizeConverted: *mut ::std::os::raw::c_int,
        _MbCh: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _WCh: wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wctomb_s_l(
        _SizeConverted: *mut ::std::os::raw::c_int,
        _MbCh: *mut ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _WCh: wchar_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstombs_s(
        _PtNumOfCharConverted: *mut size_t,
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInBytes: size_t,
        _Src: *const wchar_t,
        _MaxCountInBytes: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstombs(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const wchar_t,
        _MaxCount: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _wcstombs_s_l(
        _PtNumOfCharConverted: *mut size_t,
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInBytes: size_t,
        _Src: *const wchar_t,
        _MaxCountInBytes: size_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcstombs_l(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn _fullpath(
        _Buffer: *mut ::std::os::raw::c_char,
        _Path: *const ::std::os::raw::c_char,
        _BufferCount: size_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _makepath_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Drive: *const ::std::os::raw::c_char,
        _Dir: *const ::std::os::raw::c_char,
        _Filename: *const ::std::os::raw::c_char,
        _Ext: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn _makepath(
        _Buffer: *mut ::std::os::raw::c_char,
        _Drive: *const ::std::os::raw::c_char,
        _Dir: *const ::std::os::raw::c_char,
        _Filename: *const ::std::os::raw::c_char,
        _Ext: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn _splitpath(
        _FullPath: *const ::std::os::raw::c_char,
        _Drive: *mut ::std::os::raw::c_char,
        _Dir: *mut ::std::os::raw::c_char,
        _Filename: *mut ::std::os::raw::c_char,
        _Ext: *mut ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn _splitpath_s(
        _FullPath: *const ::std::os::raw::c_char,
        _Drive: *mut ::std::os::raw::c_char,
        _DriveCount: size_t,
        _Dir: *mut ::std::os::raw::c_char,
        _DirCount: size_t,
        _Filename: *mut ::std::os::raw::c_char,
        _FilenameCount: size_t,
        _Ext: *mut ::std::os::raw::c_char,
        _ExtCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn getenv_s(
        _RequiredCount: *mut size_t,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: rsize_t,
        _VarName: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn __p___argc() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn __p___argv() -> *mut *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __p___wargv() -> *mut *mut *mut wchar_t;
}
extern "C" {
    pub fn __p__environ() -> *mut *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __p__wenviron() -> *mut *mut *mut wchar_t;
}
extern "C" {
    pub fn getenv(_VarName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _dupenv_s(
        _Buffer: *mut *mut ::std::os::raw::c_char,
        _BufferCount: *mut size_t,
        _VarName: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn system(_Command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putenv(_EnvString: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putenv_s(
        _Name: *const ::std::os::raw::c_char,
        _Value: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn _searchenv_s(
        _Filename: *const ::std::os::raw::c_char,
        _VarName: *const ::std::os::raw::c_char,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _searchenv(
        _Filename: *const ::std::os::raw::c_char,
        _VarName: *const ::std::os::raw::c_char,
        _Buffer: *mut ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn _seterrormode(_Mode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _beep(_Frequency: ::std::os::raw::c_uint, _Duration: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn _sleep(_Duration: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn ecvt(
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fcvt(
        _Value: f64,
        _FractionalDigitCount: ::std::os::raw::c_int,
        _PtDec: *mut ::std::os::raw::c_int,
        _PtSign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn gcvt(
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
        _DstBuf: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn itoa(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ltoa(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn swab(
        _Buf1: *mut ::std::os::raw::c_char,
        _Buf2: *mut ::std::os::raw::c_char,
        _SizeInBytes: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn ultoa(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn putenv(_EnvString: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn onexit(_Func: _onexit_t) -> _onexit_t;
}
pub type mono_bool = i32;
pub type mono_byte = u8;
pub type MonoBoolean = mono_byte;
extern "C" {
    pub fn memchr(
        _Buf: *const ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memcmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memcpy(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memmove(
        _Dst: *mut ::std::os::raw::c_void,
        _Src: *const ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memset(
        _Dst: *mut ::std::os::raw::c_void,
        _Val: ::std::os::raw::c_int,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn strchr(
        _Str: *const ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrchr(
        _Str: *const ::std::os::raw::c_char,
        _Ch: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strstr(
        _Str: *const ::std::os::raw::c_char,
        _SubStr: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn wcschr(
        _Str: *const ::std::os::raw::c_ushort,
        _Ch: ::std::os::raw::c_ushort,
    ) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn wcsrchr(_Str: *const wchar_t, _Ch: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsstr(_Str: *const wchar_t, _SubStr: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _cgetws_s(
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _SizeRead: *mut size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _cputws(_Buffer: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getwch() -> wint_t;
}
extern "C" {
    pub fn _getwche() -> wint_t;
}
extern "C" {
    pub fn _putwch(_Character: wchar_t) -> wint_t;
}
extern "C" {
    pub fn _ungetwch(_Character: wint_t) -> wint_t;
}
extern "C" {
    pub fn _getwch_nolock() -> wint_t;
}
extern "C" {
    pub fn _getwche_nolock() -> wint_t;
}
extern "C" {
    pub fn _putwch_nolock(_Character: wchar_t) -> wint_t;
}
extern "C" {
    pub fn _ungetwch_nolock(_Character: wint_t) -> wint_t;
}
extern "C" {
    pub fn __conio_common_vcwprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __conio_common_vcwprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __conio_common_vcwprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __conio_common_vcwscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __pctype_func() -> *const ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn __pwctype_func() -> *const wctype_t;
}
extern "C" {
    pub fn iswalnum(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswalpha(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswascii(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswblank(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswcntrl(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswgraph(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswlower(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswprint(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswpunct(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswspace(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswupper(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswxdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsymf(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsym(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswalnum_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswalpha_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswblank_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcntrl_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswgraph_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswlower_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswprint_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswpunct_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswspace_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswupper_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswxdigit_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcsymf_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswcsym_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn towupper(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn towlower(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn iswctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _towupper_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn _towlower_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn _iswctype_l(_C: wint_t, _Type: wctype_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isleadbyte(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isleadbyte_l(_C: ::std::os::raw::c_int, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn is_wctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wgetcwd(_DstBuf: *mut wchar_t, _SizeInWords: ::std::os::raw::c_int) -> *mut wchar_t;
}
extern "C" {
    pub fn _wgetdcwd(
        _Drive: ::std::os::raw::c_int,
        _DstBuf: *mut wchar_t,
        _SizeInWords: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wchdir(_Path: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wmkdir(_Path: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wrmdir(_Path: *const wchar_t) -> ::std::os::raw::c_int;
}
pub type _fsize_t = ::std::os::raw::c_ulong;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _wfinddata32_t {
    pub attrib: ::std::os::raw::c_uint,
    pub time_create: __time32_t,
    pub time_access: __time32_t,
    pub time_write: __time32_t,
    pub size: _fsize_t,
    pub name: [wchar_t; 260usize],
}
#[test]
fn bindgen_test_layout__wfinddata32_t() {
    assert_eq!(
        ::std::mem::size_of::<_wfinddata32_t>(),
        540usize,
        concat!("Size of: ", stringify!(_wfinddata32_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_wfinddata32_t>(),
        4usize,
        concat!("Alignment of ", stringify!(_wfinddata32_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32_t>())).attrib as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32_t),
            "::",
            stringify!(attrib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32_t>())).time_create as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32_t),
            "::",
            stringify!(time_create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32_t>())).time_access as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32_t),
            "::",
            stringify!(time_access)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32_t>())).time_write as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32_t),
            "::",
            stringify!(time_write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32_t>())).size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32_t>())).name as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32_t),
            "::",
            stringify!(name)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _wfinddata32i64_t {
    pub attrib: ::std::os::raw::c_uint,
    pub time_create: __time32_t,
    pub time_access: __time32_t,
    pub time_write: __time32_t,
    pub size: ::std::os::raw::c_longlong,
    pub name: [wchar_t; 260usize],
}
#[test]
fn bindgen_test_layout__wfinddata32i64_t() {
    assert_eq!(
        ::std::mem::size_of::<_wfinddata32i64_t>(),
        544usize,
        concat!("Size of: ", stringify!(_wfinddata32i64_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_wfinddata32i64_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_wfinddata32i64_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32i64_t>())).attrib as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32i64_t),
            "::",
            stringify!(attrib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32i64_t>())).time_create as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32i64_t),
            "::",
            stringify!(time_create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32i64_t>())).time_access as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32i64_t),
            "::",
            stringify!(time_access)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32i64_t>())).time_write as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32i64_t),
            "::",
            stringify!(time_write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32i64_t>())).size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32i64_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata32i64_t>())).name as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata32i64_t),
            "::",
            stringify!(name)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _wfinddata64i32_t {
    pub attrib: ::std::os::raw::c_uint,
    pub time_create: __time64_t,
    pub time_access: __time64_t,
    pub time_write: __time64_t,
    pub size: _fsize_t,
    pub name: [wchar_t; 260usize],
}
#[test]
fn bindgen_test_layout__wfinddata64i32_t() {
    assert_eq!(
        ::std::mem::size_of::<_wfinddata64i32_t>(),
        560usize,
        concat!("Size of: ", stringify!(_wfinddata64i32_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_wfinddata64i32_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_wfinddata64i32_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64i32_t>())).attrib as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64i32_t),
            "::",
            stringify!(attrib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64i32_t>())).time_create as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64i32_t),
            "::",
            stringify!(time_create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64i32_t>())).time_access as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64i32_t),
            "::",
            stringify!(time_access)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64i32_t>())).time_write as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64i32_t),
            "::",
            stringify!(time_write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64i32_t>())).size as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64i32_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64i32_t>())).name as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64i32_t),
            "::",
            stringify!(name)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _wfinddata64_t {
    pub attrib: ::std::os::raw::c_uint,
    pub time_create: __time64_t,
    pub time_access: __time64_t,
    pub time_write: __time64_t,
    pub size: ::std::os::raw::c_longlong,
    pub name: [wchar_t; 260usize],
}
#[test]
fn bindgen_test_layout__wfinddata64_t() {
    assert_eq!(
        ::std::mem::size_of::<_wfinddata64_t>(),
        560usize,
        concat!("Size of: ", stringify!(_wfinddata64_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_wfinddata64_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_wfinddata64_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64_t>())).attrib as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64_t),
            "::",
            stringify!(attrib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64_t>())).time_create as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64_t),
            "::",
            stringify!(time_create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64_t>())).time_access as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64_t),
            "::",
            stringify!(time_access)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64_t>())).time_write as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64_t),
            "::",
            stringify!(time_write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64_t>())).size as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64_t),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wfinddata64_t>())).name as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_wfinddata64_t),
            "::",
            stringify!(name)
        )
    );
}
extern "C" {
    pub fn _waccess(
        _FileName: *const wchar_t,
        _AccessMode: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _waccess_s(_FileName: *const wchar_t, _AccessMode: ::std::os::raw::c_int) -> errno_t;
}
extern "C" {
    pub fn _wchmod(
        _FileName: *const wchar_t,
        _Mode: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcreat(
        _FileName: *const wchar_t,
        _PermissionMode: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wfindfirst32(_FileName: *const wchar_t, _FindData: *mut _wfinddata32_t) -> isize;
}
extern "C" {
    pub fn _wfindnext32(
        _FindHandle: isize,
        _FindData: *mut _wfinddata32_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wunlink(_FileName: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wrename(
        _OldFileName: *const wchar_t,
        _NewFileName: *const wchar_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wmktemp_s(_TemplateName: *mut wchar_t, _SizeInWords: size_t) -> errno_t;
}
extern "C" {
    pub fn _wmktemp(_TemplateName: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wfindfirst32i64(_FileName: *const wchar_t, _FindData: *mut _wfinddata32i64_t) -> isize;
}
extern "C" {
    pub fn _wfindfirst64i32(_FileName: *const wchar_t, _FindData: *mut _wfinddata64i32_t) -> isize;
}
extern "C" {
    pub fn _wfindfirst64(_FileName: *const wchar_t, _FindData: *mut _wfinddata64_t) -> isize;
}
extern "C" {
    pub fn _wfindnext32i64(
        _FindHandle: isize,
        _FindData: *mut _wfinddata32i64_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wfindnext64i32(
        _FindHandle: isize,
        _FindData: *mut _wfinddata64i32_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wfindnext64(
        _FindHandle: isize,
        _FindData: *mut _wfinddata64_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wsopen_s(
        _FileHandle: *mut ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _OpenFlag: ::std::os::raw::c_int,
        _ShareFlag: ::std::os::raw::c_int,
        _PermissionFlag: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _wsopen_dispatch(
        _FileName: *const wchar_t,
        _OFlag: ::std::os::raw::c_int,
        _ShFlag: ::std::os::raw::c_int,
        _PMode: ::std::os::raw::c_int,
        _PFileHandle: *mut ::std::os::raw::c_int,
        _BSecure: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _wopen(
        _FileName: *const wchar_t,
        _OpenFlag: ::std::os::raw::c_int,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wsopen(
        _FileName: *const wchar_t,
        _OpenFlag: ::std::os::raw::c_int,
        _ShareFlag: ::std::os::raw::c_int,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wexecl(_FileName: *const wchar_t, _ArgList: *const wchar_t, ...) -> isize;
}
extern "C" {
    pub fn _wexecle(_FileName: *const wchar_t, _ArgList: *const wchar_t, ...) -> isize;
}
extern "C" {
    pub fn _wexeclp(_FileName: *const wchar_t, _ArgList: *const wchar_t, ...) -> isize;
}
extern "C" {
    pub fn _wexeclpe(_FileName: *const wchar_t, _ArgList: *const wchar_t, ...) -> isize;
}
extern "C" {
    pub fn _wexecv(_FileName: *const wchar_t, _ArgList: *const *const wchar_t) -> isize;
}
extern "C" {
    pub fn _wexecve(
        _FileName: *const wchar_t,
        _ArgList: *const *const wchar_t,
        _Env: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wexecvp(_FileName: *const wchar_t, _ArgList: *const *const wchar_t) -> isize;
}
extern "C" {
    pub fn _wexecvpe(
        _FileName: *const wchar_t,
        _ArgList: *const *const wchar_t,
        _Env: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wspawnl(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnle(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnlp(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnlpe(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const wchar_t,
        ...
    ) -> isize;
}
extern "C" {
    pub fn _wspawnv(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wspawnve(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const *const wchar_t,
        _Env: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wspawnvp(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const *const wchar_t,
    ) -> isize;
}
extern "C" {
    pub fn _wspawnvpe(
        _Mode: ::std::os::raw::c_int,
        _FileName: *const wchar_t,
        _ArgList: *const *const wchar_t,
        _Env: *const *const wchar_t,
    ) -> isize;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _iobuf {
    pub _Placeholder: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__iobuf() {
    assert_eq!(
        ::std::mem::size_of::<_iobuf>(),
        8usize,
        concat!("Size of: ", stringify!(_iobuf))
    );
    assert_eq!(
        ::std::mem::align_of::<_iobuf>(),
        8usize,
        concat!("Alignment of ", stringify!(_iobuf))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_iobuf>()))._Placeholder as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_iobuf),
            "::",
            stringify!(_Placeholder)
        )
    );
}
pub type FILE = _iobuf;
extern "C" {
    pub fn __acrt_iob_func(_Ix: ::std::os::raw::c_uint) -> *mut FILE;
}
extern "C" {
    pub fn fgetwc(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fgetwchar() -> wint_t;
}
extern "C" {
    pub fn fputwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fputwchar(_Character: wchar_t) -> wint_t;
}
extern "C" {
    pub fn getwc(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn getwchar() -> wint_t;
}
extern "C" {
    pub fn fgetws(
        _Buffer: *mut wchar_t,
        _BufferCount: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn fputws(_Buffer: *const wchar_t, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getws_s(_Buffer: *mut wchar_t, _BufferCount: size_t) -> *mut wchar_t;
}
extern "C" {
    pub fn putwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn putwchar(_Character: wchar_t) -> wint_t;
}
extern "C" {
    pub fn _putws(_Buffer: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ungetwc(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _wfdopen(_FileHandle: ::std::os::raw::c_int, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wfopen(_FileName: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wfopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wfreopen(
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
        _OldStream: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn _wfreopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
        _OldStream: *mut FILE,
    ) -> errno_t;
}
extern "C" {
    pub fn _wfsopen(
        _FileName: *const wchar_t,
        _Mode: *const wchar_t,
        _ShFlag: ::std::os::raw::c_int,
    ) -> *mut FILE;
}
extern "C" {
    pub fn _wpopen(_Command: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
}
extern "C" {
    pub fn _wremove(_FileName: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtempnam(_Directory: *const wchar_t, _FilePrefix: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wtmpnam_s(_Buffer: *mut wchar_t, _BufferCount: size_t) -> errno_t;
}
extern "C" {
    pub fn _wtmpnam(_Buffer: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _fgetwc_nolock(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _fputwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _getwc_nolock(_Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _putwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn _ungetwc_nolock(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
}
extern "C" {
    pub fn __stdio_common_vfwprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfwprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfwprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfwscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsnwprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _MaxCount: size_t,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vswscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *const wchar_t,
        _BufferCount: size_t,
        _Format: *const wchar_t,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcscat_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcscpy_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsncat_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsncpy_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstok_s(
        _String: *mut wchar_t,
        _Delimiter: *const wchar_t,
        _Context: *mut *mut wchar_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsdup(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscat(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscmp(
        _String1: *const ::std::os::raw::c_ushort,
        _String2: *const ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcscpy(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscspn(_String: *const wchar_t, _Control: *const wchar_t) -> size_t;
}
extern "C" {
    pub fn wcslen(_String: *const ::std::os::raw::c_ushort) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn wcsnlen(_Source: *const wchar_t, _MaxCount: size_t) -> size_t;
}
extern "C" {
    pub fn wcsncat(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _Count: size_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsncmp(
        _String1: *const ::std::os::raw::c_ushort,
        _String2: *const ::std::os::raw::c_ushort,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsncpy(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _Count: size_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcspbrk(_String: *const wchar_t, _Control: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsspn(_String: *const wchar_t, _Control: *const wchar_t) -> size_t;
}
extern "C" {
    pub fn wcstok(
        _String: *mut wchar_t,
        _Delimiter: *const wchar_t,
        _Context: *mut *mut wchar_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror(_ErrorNumber: ::std::os::raw::c_int) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _ErrorNumber: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn __wcserror(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn __wcserror_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _ErrorMessage: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicmp_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnset_s(
        _Destination: *mut wchar_t,
        _SizeInWords: size_t,
        _Value: wchar_t,
        _MaxCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: size_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsset_s(_Destination: *mut wchar_t, _SizeInWords: size_t, _Value: wchar_t) -> errno_t;
}
extern "C" {
    pub fn _wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr_s(_String: *mut wchar_t, _SizeInWords: size_t) -> errno_t;
}
extern "C" {
    pub fn _wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr_s_l(_String: *mut wchar_t, _SizeInWords: size_t, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn _wcslwr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr_s(_String: *mut wchar_t, _Size: size_t) -> errno_t;
}
extern "C" {
    pub fn _wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr_s_l(_String: *mut wchar_t, _Size: size_t, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn _wcsupr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsxfrm(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _MaxCount: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _wcsxfrm_l(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn wcscoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcscoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsdup(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnicmp(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: size_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm {
    pub tm_sec: ::std::os::raw::c_int,
    pub tm_min: ::std::os::raw::c_int,
    pub tm_hour: ::std::os::raw::c_int,
    pub tm_mday: ::std::os::raw::c_int,
    pub tm_mon: ::std::os::raw::c_int,
    pub tm_year: ::std::os::raw::c_int,
    pub tm_wday: ::std::os::raw::c_int,
    pub tm_yday: ::std::os::raw::c_int,
    pub tm_isdst: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_tm() {
    assert_eq!(
        ::std::mem::size_of::<tm>(),
        36usize,
        concat!("Size of: ", stringify!(tm))
    );
    assert_eq!(
        ::std::mem::align_of::<tm>(),
        4usize,
        concat!("Alignment of ", stringify!(tm))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_sec as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_sec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_min as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_min)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_hour as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_hour)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_mday as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_mday)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_mon as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_mon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_year as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_year)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_wday as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_wday)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_yday as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_yday)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tm>())).tm_isdst as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tm),
            "::",
            stringify!(tm_isdst)
        )
    );
}
extern "C" {
    pub fn _wasctime(_Tm: *const tm) -> *mut wchar_t;
}
extern "C" {
    pub fn _wasctime_s(_Buffer: *mut wchar_t, _SizeInWords: size_t, _Tm: *const tm) -> errno_t;
}
extern "C" {
    pub fn wcsftime(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _Format: *const wchar_t,
        _Tm: *const tm,
    ) -> size_t;
}
extern "C" {
    pub fn _wcsftime_l(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _Format: *const wchar_t,
        _Tm: *const tm,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn _wctime32(_Time: *const __time32_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wctime32_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _Time: *const __time32_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wctime64(_Time: *const __time64_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wctime64_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _Time: *const __time64_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wstrdate_s(_Buffer: *mut wchar_t, _SizeInWords: size_t) -> errno_t;
}
extern "C" {
    pub fn _wstrdate(_Buffer: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wstrtime_s(_Buffer: *mut wchar_t, _SizeInWords: size_t) -> errno_t;
}
extern "C" {
    pub fn _wstrtime(_Buffer: *mut wchar_t) -> *mut wchar_t;
}
pub type _ino_t = ::std::os::raw::c_ushort;
pub type ino_t = _ino_t;
pub type _dev_t = ::std::os::raw::c_uint;
pub type dev_t = _dev_t;
pub type _off_t = ::std::os::raw::c_long;
pub type off_t = _off_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _stat32 {
    pub st_dev: _dev_t,
    pub st_ino: _ino_t,
    pub st_mode: ::std::os::raw::c_ushort,
    pub st_nlink: ::std::os::raw::c_short,
    pub st_uid: ::std::os::raw::c_short,
    pub st_gid: ::std::os::raw::c_short,
    pub st_rdev: _dev_t,
    pub st_size: _off_t,
    pub st_atime: __time32_t,
    pub st_mtime: __time32_t,
    pub st_ctime: __time32_t,
}
#[test]
fn bindgen_test_layout__stat32() {
    assert_eq!(
        ::std::mem::size_of::<_stat32>(),
        36usize,
        concat!("Size of: ", stringify!(_stat32))
    );
    assert_eq!(
        ::std::mem::align_of::<_stat32>(),
        4usize,
        concat!("Alignment of ", stringify!(_stat32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_dev as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_dev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_ino as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_ino)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_mode as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_nlink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_nlink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_uid as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_uid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_gid as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_gid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_rdev as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_rdev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_size as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_atime as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_atime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_mtime as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_mtime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32>())).st_ctime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32),
            "::",
            stringify!(st_ctime)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _stat32i64 {
    pub st_dev: _dev_t,
    pub st_ino: _ino_t,
    pub st_mode: ::std::os::raw::c_ushort,
    pub st_nlink: ::std::os::raw::c_short,
    pub st_uid: ::std::os::raw::c_short,
    pub st_gid: ::std::os::raw::c_short,
    pub st_rdev: _dev_t,
    pub st_size: ::std::os::raw::c_longlong,
    pub st_atime: __time32_t,
    pub st_mtime: __time32_t,
    pub st_ctime: __time32_t,
}
#[test]
fn bindgen_test_layout__stat32i64() {
    assert_eq!(
        ::std::mem::size_of::<_stat32i64>(),
        48usize,
        concat!("Size of: ", stringify!(_stat32i64))
    );
    assert_eq!(
        ::std::mem::align_of::<_stat32i64>(),
        8usize,
        concat!("Alignment of ", stringify!(_stat32i64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_dev as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_dev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_ino as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_ino)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_mode as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_nlink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_nlink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_uid as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_uid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_gid as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_gid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_rdev as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_rdev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_atime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_atime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_mtime as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_mtime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat32i64>())).st_ctime as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat32i64),
            "::",
            stringify!(st_ctime)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _stat64i32 {
    pub st_dev: _dev_t,
    pub st_ino: _ino_t,
    pub st_mode: ::std::os::raw::c_ushort,
    pub st_nlink: ::std::os::raw::c_short,
    pub st_uid: ::std::os::raw::c_short,
    pub st_gid: ::std::os::raw::c_short,
    pub st_rdev: _dev_t,
    pub st_size: _off_t,
    pub st_atime: __time64_t,
    pub st_mtime: __time64_t,
    pub st_ctime: __time64_t,
}
#[test]
fn bindgen_test_layout__stat64i32() {
    assert_eq!(
        ::std::mem::size_of::<_stat64i32>(),
        48usize,
        concat!("Size of: ", stringify!(_stat64i32))
    );
    assert_eq!(
        ::std::mem::align_of::<_stat64i32>(),
        8usize,
        concat!("Alignment of ", stringify!(_stat64i32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_dev as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_dev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_ino as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_ino)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_mode as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_nlink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_nlink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_uid as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_uid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_gid as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_gid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_rdev as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_rdev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_size as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_atime as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_atime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_mtime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_mtime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64i32>())).st_ctime as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64i32),
            "::",
            stringify!(st_ctime)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _stat64 {
    pub st_dev: _dev_t,
    pub st_ino: _ino_t,
    pub st_mode: ::std::os::raw::c_ushort,
    pub st_nlink: ::std::os::raw::c_short,
    pub st_uid: ::std::os::raw::c_short,
    pub st_gid: ::std::os::raw::c_short,
    pub st_rdev: _dev_t,
    pub st_size: ::std::os::raw::c_longlong,
    pub st_atime: __time64_t,
    pub st_mtime: __time64_t,
    pub st_ctime: __time64_t,
}
#[test]
fn bindgen_test_layout__stat64() {
    assert_eq!(
        ::std::mem::size_of::<_stat64>(),
        56usize,
        concat!("Size of: ", stringify!(_stat64))
    );
    assert_eq!(
        ::std::mem::align_of::<_stat64>(),
        8usize,
        concat!("Alignment of ", stringify!(_stat64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_dev as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_dev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_ino as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_ino)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_mode as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_nlink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_nlink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_uid as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_uid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_gid as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_gid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_rdev as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_rdev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_atime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_atime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_mtime as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_mtime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_stat64>())).st_ctime as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_stat64),
            "::",
            stringify!(st_ctime)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct stat {
    pub st_dev: _dev_t,
    pub st_ino: _ino_t,
    pub st_mode: ::std::os::raw::c_ushort,
    pub st_nlink: ::std::os::raw::c_short,
    pub st_uid: ::std::os::raw::c_short,
    pub st_gid: ::std::os::raw::c_short,
    pub st_rdev: _dev_t,
    pub st_size: _off_t,
    pub st_atime: time_t,
    pub st_mtime: time_t,
    pub st_ctime: time_t,
}
#[test]
fn bindgen_test_layout_stat() {
    assert_eq!(
        ::std::mem::size_of::<stat>(),
        48usize,
        concat!("Size of: ", stringify!(stat))
    );
    assert_eq!(
        ::std::mem::align_of::<stat>(),
        8usize,
        concat!("Alignment of ", stringify!(stat))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_dev as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_dev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_ino as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_ino)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_mode as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_mode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_nlink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_nlink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_uid as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_uid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_gid as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_gid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_rdev as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_rdev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_size as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_atime as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_atime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_mtime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_mtime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<stat>())).st_ctime as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(stat),
            "::",
            stringify!(st_ctime)
        )
    );
}
extern "C" {
    pub fn _fstat32(
        _FileHandle: ::std::os::raw::c_int,
        _Stat: *mut _stat32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fstat32i64(
        _FileHandle: ::std::os::raw::c_int,
        _Stat: *mut _stat32i64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fstat64i32(
        _FileHandle: ::std::os::raw::c_int,
        _Stat: *mut _stat64i32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fstat64(
        _FileHandle: ::std::os::raw::c_int,
        _Stat: *mut _stat64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stat32(
        _FileName: *const ::std::os::raw::c_char,
        _Stat: *mut _stat32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stat32i64(
        _FileName: *const ::std::os::raw::c_char,
        _Stat: *mut _stat32i64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stat64i32(
        _FileName: *const ::std::os::raw::c_char,
        _Stat: *mut _stat64i32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stat64(
        _FileName: *const ::std::os::raw::c_char,
        _Stat: *mut _stat64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wstat32(_FileName: *const wchar_t, _Stat: *mut _stat32) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wstat32i64(_FileName: *const wchar_t, _Stat: *mut _stat32i64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wstat64i32(_FileName: *const wchar_t, _Stat: *mut _stat64i32) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wstat64(_FileName: *const wchar_t, _Stat: *mut _stat64) -> ::std::os::raw::c_int;
}
pub type _Wint_t = wchar_t;
extern "C" {
    pub fn _wsetlocale(_Category: ::std::os::raw::c_int, _Locale: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcreate_locale(_Category: ::std::os::raw::c_int, _Locale: *const wchar_t) -> _locale_t;
}
extern "C" {
    pub fn btowc(_Ch: ::std::os::raw::c_int) -> wint_t;
}
extern "C" {
    pub fn mbrlen(
        _Ch: *const ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _State: *mut mbstate_t,
    ) -> size_t;
}
extern "C" {
    pub fn mbrtowc(
        _DstCh: *mut wchar_t,
        _SrcCh: *const ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _State: *mut mbstate_t,
    ) -> size_t;
}
extern "C" {
    pub fn mbsrtowcs_s(
        _Retval: *mut size_t,
        _Dst: *mut wchar_t,
        _Size: size_t,
        _PSrc: *mut *const ::std::os::raw::c_char,
        _N: size_t,
        _State: *mut mbstate_t,
    ) -> errno_t;
}
extern "C" {
    pub fn mbsrtowcs(
        _Dest: *mut wchar_t,
        _PSrc: *mut *const ::std::os::raw::c_char,
        _Count: size_t,
        _State: *mut mbstate_t,
    ) -> size_t;
}
extern "C" {
    pub fn wcrtomb_s(
        _Retval: *mut size_t,
        _Dst: *mut ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _Ch: wchar_t,
        _State: *mut mbstate_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcrtomb(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: wchar_t,
        _State: *mut mbstate_t,
    ) -> size_t;
}
extern "C" {
    pub fn wcsrtombs_s(
        _Retval: *mut size_t,
        _Dst: *mut ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _Src: *mut *const wchar_t,
        _Size: size_t,
        _State: *mut mbstate_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsrtombs(
        _Dest: *mut ::std::os::raw::c_char,
        _PSource: *mut *const wchar_t,
        _Count: size_t,
        _State: *mut mbstate_t,
    ) -> size_t;
}
extern "C" {
    pub fn wctob(_WCh: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wmemcpy_s(_S1: *mut wchar_t, _N1: rsize_t, _S2: *const wchar_t, _N: rsize_t) -> errno_t;
}
extern "C" {
    pub fn wmemmove_s(_S1: *mut wchar_t, _N1: rsize_t, _S2: *const wchar_t, _N: rsize_t)
        -> errno_t;
}
pub type mono_unichar2 = wchar_t;
pub type mono_unichar4 = u32;
pub type MonoFunc = ::std::option::Option<
    unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, user_data: *mut ::std::os::raw::c_void),
>;
pub type MonoHFunc = ::std::option::Option<
    unsafe extern "C" fn(
        key: *mut ::std::os::raw::c_void,
        value: *mut ::std::os::raw::c_void,
        user_data: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub fn mono_free(arg1: *mut ::std::os::raw::c_void);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MonoAllocatorVTable {
    pub version: ::std::os::raw::c_int,
    pub malloc:
        ::std::option::Option<unsafe extern "C" fn(size: size_t) -> *mut ::std::os::raw::c_void>,
    pub realloc: ::std::option::Option<
        unsafe extern "C" fn(
            mem: *mut ::std::os::raw::c_void,
            count: size_t,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub free: ::std::option::Option<unsafe extern "C" fn(mem: *mut ::std::os::raw::c_void)>,
    pub calloc: ::std::option::Option<
        unsafe extern "C" fn(count: size_t, size: size_t) -> *mut ::std::os::raw::c_void,
    >,
}
#[test]
fn bindgen_test_layout_MonoAllocatorVTable() {
    assert_eq!(
        ::std::mem::size_of::<MonoAllocatorVTable>(),
        40usize,
        concat!("Size of: ", stringify!(MonoAllocatorVTable))
    );
    assert_eq!(
        ::std::mem::align_of::<MonoAllocatorVTable>(),
        8usize,
        concat!("Alignment of ", stringify!(MonoAllocatorVTable))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoAllocatorVTable>())).version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoAllocatorVTable),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoAllocatorVTable>())).malloc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoAllocatorVTable),
            "::",
            stringify!(malloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoAllocatorVTable>())).realloc as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoAllocatorVTable),
            "::",
            stringify!(realloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoAllocatorVTable>())).free as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoAllocatorVTable),
            "::",
            stringify!(free)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoAllocatorVTable>())).calloc as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoAllocatorVTable),
            "::",
            stringify!(calloc)
        )
    );
}
extern "C" {
    pub fn mono_set_allocator_vtable(vtable: *mut MonoAllocatorVTable) -> mono_bool;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoClass {
    _unused: [u8; 0],
}
pub type MonoClass = _MonoClass;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoImage {
    _unused: [u8; 0],
}
pub type MonoImage = _MonoImage;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoMethod {
    _unused: [u8; 0],
}
pub type MonoMethod = _MonoMethod;
pub type MonoObject = _MonoObject;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoException {
    _unused: [u8; 0],
}
pub type MonoException = _MonoException;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionAssembly {
    _unused: [u8; 0],
}
pub type MonoReflectionAssembly = _MonoReflectionAssembly;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionTypeBuilder {
    _unused: [u8; 0],
}
pub type MonoReflectionTypeBuilder = _MonoReflectionTypeBuilder;
pub const MonoTypeEnum_MONO_TYPE_END: MonoTypeEnum = 0;
pub const MonoTypeEnum_MONO_TYPE_VOID: MonoTypeEnum = 1;
pub const MonoTypeEnum_MONO_TYPE_BOOLEAN: MonoTypeEnum = 2;
pub const MonoTypeEnum_MONO_TYPE_CHAR: MonoTypeEnum = 3;
pub const MonoTypeEnum_MONO_TYPE_I1: MonoTypeEnum = 4;
pub const MonoTypeEnum_MONO_TYPE_U1: MonoTypeEnum = 5;
pub const MonoTypeEnum_MONO_TYPE_I2: MonoTypeEnum = 6;
pub const MonoTypeEnum_MONO_TYPE_U2: MonoTypeEnum = 7;
pub const MonoTypeEnum_MONO_TYPE_I4: MonoTypeEnum = 8;
pub const MonoTypeEnum_MONO_TYPE_U4: MonoTypeEnum = 9;
pub const MonoTypeEnum_MONO_TYPE_I8: MonoTypeEnum = 10;
pub const MonoTypeEnum_MONO_TYPE_U8: MonoTypeEnum = 11;
pub const MonoTypeEnum_MONO_TYPE_R4: MonoTypeEnum = 12;
pub const MonoTypeEnum_MONO_TYPE_R8: MonoTypeEnum = 13;
pub const MonoTypeEnum_MONO_TYPE_STRING: MonoTypeEnum = 14;
pub const MonoTypeEnum_MONO_TYPE_PTR: MonoTypeEnum = 15;
pub const MonoTypeEnum_MONO_TYPE_BYREF: MonoTypeEnum = 16;
pub const MonoTypeEnum_MONO_TYPE_VALUETYPE: MonoTypeEnum = 17;
pub const MonoTypeEnum_MONO_TYPE_CLASS: MonoTypeEnum = 18;
pub const MonoTypeEnum_MONO_TYPE_VAR: MonoTypeEnum = 19;
pub const MonoTypeEnum_MONO_TYPE_ARRAY: MonoTypeEnum = 20;
pub const MonoTypeEnum_MONO_TYPE_GENERICINST: MonoTypeEnum = 21;
pub const MonoTypeEnum_MONO_TYPE_TYPEDBYREF: MonoTypeEnum = 22;
pub const MonoTypeEnum_MONO_TYPE_I: MonoTypeEnum = 24;
pub const MonoTypeEnum_MONO_TYPE_U: MonoTypeEnum = 25;
pub const MonoTypeEnum_MONO_TYPE_FNPTR: MonoTypeEnum = 27;
pub const MonoTypeEnum_MONO_TYPE_OBJECT: MonoTypeEnum = 28;
pub const MonoTypeEnum_MONO_TYPE_SZARRAY: MonoTypeEnum = 29;
pub const MonoTypeEnum_MONO_TYPE_MVAR: MonoTypeEnum = 30;
pub const MonoTypeEnum_MONO_TYPE_CMOD_REQD: MonoTypeEnum = 31;
pub const MonoTypeEnum_MONO_TYPE_CMOD_OPT: MonoTypeEnum = 32;
pub const MonoTypeEnum_MONO_TYPE_INTERNAL: MonoTypeEnum = 33;
pub const MonoTypeEnum_MONO_TYPE_MODIFIER: MonoTypeEnum = 64;
pub const MonoTypeEnum_MONO_TYPE_SENTINEL: MonoTypeEnum = 65;
pub const MonoTypeEnum_MONO_TYPE_PINNED: MonoTypeEnum = 69;
pub const MonoTypeEnum_MONO_TYPE_ENUM: MonoTypeEnum = 85;
pub type MonoTypeEnum = ::std::os::raw::c_int;
pub const MonoMetaTableEnum_MONO_TABLE_MODULE: MonoMetaTableEnum = 0;
pub const MonoMetaTableEnum_MONO_TABLE_TYPEREF: MonoMetaTableEnum = 1;
pub const MonoMetaTableEnum_MONO_TABLE_TYPEDEF: MonoMetaTableEnum = 2;
pub const MonoMetaTableEnum_MONO_TABLE_FIELD_POINTER: MonoMetaTableEnum = 3;
pub const MonoMetaTableEnum_MONO_TABLE_FIELD: MonoMetaTableEnum = 4;
pub const MonoMetaTableEnum_MONO_TABLE_METHOD_POINTER: MonoMetaTableEnum = 5;
pub const MonoMetaTableEnum_MONO_TABLE_METHOD: MonoMetaTableEnum = 6;
pub const MonoMetaTableEnum_MONO_TABLE_PARAM_POINTER: MonoMetaTableEnum = 7;
pub const MonoMetaTableEnum_MONO_TABLE_PARAM: MonoMetaTableEnum = 8;
pub const MonoMetaTableEnum_MONO_TABLE_INTERFACEIMPL: MonoMetaTableEnum = 9;
pub const MonoMetaTableEnum_MONO_TABLE_MEMBERREF: MonoMetaTableEnum = 10;
pub const MonoMetaTableEnum_MONO_TABLE_CONSTANT: MonoMetaTableEnum = 11;
pub const MonoMetaTableEnum_MONO_TABLE_CUSTOMATTRIBUTE: MonoMetaTableEnum = 12;
pub const MonoMetaTableEnum_MONO_TABLE_FIELDMARSHAL: MonoMetaTableEnum = 13;
pub const MonoMetaTableEnum_MONO_TABLE_DECLSECURITY: MonoMetaTableEnum = 14;
pub const MonoMetaTableEnum_MONO_TABLE_CLASSLAYOUT: MonoMetaTableEnum = 15;
pub const MonoMetaTableEnum_MONO_TABLE_FIELDLAYOUT: MonoMetaTableEnum = 16;
pub const MonoMetaTableEnum_MONO_TABLE_STANDALONESIG: MonoMetaTableEnum = 17;
pub const MonoMetaTableEnum_MONO_TABLE_EVENTMAP: MonoMetaTableEnum = 18;
pub const MonoMetaTableEnum_MONO_TABLE_EVENT_POINTER: MonoMetaTableEnum = 19;
pub const MonoMetaTableEnum_MONO_TABLE_EVENT: MonoMetaTableEnum = 20;
pub const MonoMetaTableEnum_MONO_TABLE_PROPERTYMAP: MonoMetaTableEnum = 21;
pub const MonoMetaTableEnum_MONO_TABLE_PROPERTY_POINTER: MonoMetaTableEnum = 22;
pub const MonoMetaTableEnum_MONO_TABLE_PROPERTY: MonoMetaTableEnum = 23;
pub const MonoMetaTableEnum_MONO_TABLE_METHODSEMANTICS: MonoMetaTableEnum = 24;
pub const MonoMetaTableEnum_MONO_TABLE_METHODIMPL: MonoMetaTableEnum = 25;
pub const MonoMetaTableEnum_MONO_TABLE_MODULEREF: MonoMetaTableEnum = 26;
pub const MonoMetaTableEnum_MONO_TABLE_TYPESPEC: MonoMetaTableEnum = 27;
pub const MonoMetaTableEnum_MONO_TABLE_IMPLMAP: MonoMetaTableEnum = 28;
pub const MonoMetaTableEnum_MONO_TABLE_FIELDRVA: MonoMetaTableEnum = 29;
pub const MonoMetaTableEnum_MONO_TABLE_UNUSED6: MonoMetaTableEnum = 30;
pub const MonoMetaTableEnum_MONO_TABLE_UNUSED7: MonoMetaTableEnum = 31;
pub const MonoMetaTableEnum_MONO_TABLE_ASSEMBLY: MonoMetaTableEnum = 32;
pub const MonoMetaTableEnum_MONO_TABLE_ASSEMBLYPROCESSOR: MonoMetaTableEnum = 33;
pub const MonoMetaTableEnum_MONO_TABLE_ASSEMBLYOS: MonoMetaTableEnum = 34;
pub const MonoMetaTableEnum_MONO_TABLE_ASSEMBLYREF: MonoMetaTableEnum = 35;
pub const MonoMetaTableEnum_MONO_TABLE_ASSEMBLYREFPROCESSOR: MonoMetaTableEnum = 36;
pub const MonoMetaTableEnum_MONO_TABLE_ASSEMBLYREFOS: MonoMetaTableEnum = 37;
pub const MonoMetaTableEnum_MONO_TABLE_FILE: MonoMetaTableEnum = 38;
pub const MonoMetaTableEnum_MONO_TABLE_EXPORTEDTYPE: MonoMetaTableEnum = 39;
pub const MonoMetaTableEnum_MONO_TABLE_MANIFESTRESOURCE: MonoMetaTableEnum = 40;
pub const MonoMetaTableEnum_MONO_TABLE_NESTEDCLASS: MonoMetaTableEnum = 41;
pub const MonoMetaTableEnum_MONO_TABLE_GENERICPARAM: MonoMetaTableEnum = 42;
pub const MonoMetaTableEnum_MONO_TABLE_METHODSPEC: MonoMetaTableEnum = 43;
pub const MonoMetaTableEnum_MONO_TABLE_GENERICPARAMCONSTRAINT: MonoMetaTableEnum = 44;
pub const MonoMetaTableEnum_MONO_TABLE_UNUSED8: MonoMetaTableEnum = 45;
pub const MonoMetaTableEnum_MONO_TABLE_UNUSED9: MonoMetaTableEnum = 46;
pub const MonoMetaTableEnum_MONO_TABLE_UNUSED10: MonoMetaTableEnum = 47;
pub const MonoMetaTableEnum_MONO_TABLE_DOCUMENT: MonoMetaTableEnum = 48;
pub const MonoMetaTableEnum_MONO_TABLE_METHODBODY: MonoMetaTableEnum = 49;
pub const MonoMetaTableEnum_MONO_TABLE_LOCALSCOPE: MonoMetaTableEnum = 50;
pub const MonoMetaTableEnum_MONO_TABLE_LOCALVARIABLE: MonoMetaTableEnum = 51;
pub const MonoMetaTableEnum_MONO_TABLE_LOCALCONSTANT: MonoMetaTableEnum = 52;
pub const MonoMetaTableEnum_MONO_TABLE_IMPORTSCOPE: MonoMetaTableEnum = 53;
pub const MonoMetaTableEnum_MONO_TABLE_STATEMACHINEMETHOD: MonoMetaTableEnum = 54;
pub const MonoMetaTableEnum_MONO_TABLE_CUSTOMDEBUGINFORMATION: MonoMetaTableEnum = 55;
pub type MonoMetaTableEnum = ::std::os::raw::c_int;
pub const MONO_ASSEMBLY_HASH_ALG: ::std::os::raw::c_int = 0;
pub const MONO_ASSEMBLY_MAJOR_VERSION: ::std::os::raw::c_int = 1;
pub const MONO_ASSEMBLY_MINOR_VERSION: ::std::os::raw::c_int = 2;
pub const MONO_ASSEMBLY_BUILD_NUMBER: ::std::os::raw::c_int = 3;
pub const MONO_ASSEMBLY_REV_NUMBER: ::std::os::raw::c_int = 4;
pub const MONO_ASSEMBLY_FLAGS: ::std::os::raw::c_int = 5;
pub const MONO_ASSEMBLY_PUBLIC_KEY: ::std::os::raw::c_int = 6;
pub const MONO_ASSEMBLY_NAME: ::std::os::raw::c_int = 7;
pub const MONO_ASSEMBLY_CULTURE: ::std::os::raw::c_int = 8;
pub const MONO_ASSEMBLY_SIZE: ::std::os::raw::c_int = 9;
pub type _bindgen_ty_1 = ::std::os::raw::c_int;
pub const MONO_ASSEMBLYOS_PLATFORM: ::std::os::raw::c_int = 0;
pub const MONO_ASSEMBLYOS_MAJOR_VERSION: ::std::os::raw::c_int = 1;
pub const MONO_ASSEMBLYOS_MINOR_VERSION: ::std::os::raw::c_int = 2;
pub const MONO_ASSEMBLYOS_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_2 = ::std::os::raw::c_int;
pub const MONO_ASSEMBLY_PROCESSOR: ::std::os::raw::c_int = 0;
pub const MONO_ASSEMBLY_PROCESSOR_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_3 = ::std::os::raw::c_int;
pub const MONO_ASSEMBLYREF_MAJOR_VERSION: ::std::os::raw::c_int = 0;
pub const MONO_ASSEMBLYREF_MINOR_VERSION: ::std::os::raw::c_int = 1;
pub const MONO_ASSEMBLYREF_BUILD_NUMBER: ::std::os::raw::c_int = 2;
pub const MONO_ASSEMBLYREF_REV_NUMBER: ::std::os::raw::c_int = 3;
pub const MONO_ASSEMBLYREF_FLAGS: ::std::os::raw::c_int = 4;
pub const MONO_ASSEMBLYREF_PUBLIC_KEY: ::std::os::raw::c_int = 5;
pub const MONO_ASSEMBLYREF_NAME: ::std::os::raw::c_int = 6;
pub const MONO_ASSEMBLYREF_CULTURE: ::std::os::raw::c_int = 7;
pub const MONO_ASSEMBLYREF_HASH_VALUE: ::std::os::raw::c_int = 8;
pub const MONO_ASSEMBLYREF_SIZE: ::std::os::raw::c_int = 9;
pub type _bindgen_ty_4 = ::std::os::raw::c_int;
pub const MONO_ASSEMBLYREFOS_PLATFORM: ::std::os::raw::c_int = 0;
pub const MONO_ASSEMBLYREFOS_MAJOR_VERSION: ::std::os::raw::c_int = 1;
pub const MONO_ASSEMBLYREFOS_MINOR_VERSION: ::std::os::raw::c_int = 2;
pub const MONO_ASSEMBLYREFOS_ASSEMBLYREF: ::std::os::raw::c_int = 3;
pub const MONO_ASSEMBLYREFOS_SIZE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_5 = ::std::os::raw::c_int;
pub const MONO_ASSEMBLYREFPROC_PROCESSOR: ::std::os::raw::c_int = 0;
pub const MONO_ASSEMBLYREFPROC_ASSEMBLYREF: ::std::os::raw::c_int = 1;
pub const MONO_ASSEMBLYREFPROC_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_6 = ::std::os::raw::c_int;
pub const MONO_CLASS_LAYOUT_PACKING_SIZE: ::std::os::raw::c_int = 0;
pub const MONO_CLASS_LAYOUT_CLASS_SIZE: ::std::os::raw::c_int = 1;
pub const MONO_CLASS_LAYOUT_PARENT: ::std::os::raw::c_int = 2;
pub const MONO_CLASS_LAYOUT_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_7 = ::std::os::raw::c_int;
pub const MONO_CONSTANT_TYPE: ::std::os::raw::c_int = 0;
pub const MONO_CONSTANT_PADDING: ::std::os::raw::c_int = 1;
pub const MONO_CONSTANT_PARENT: ::std::os::raw::c_int = 2;
pub const MONO_CONSTANT_VALUE: ::std::os::raw::c_int = 3;
pub const MONO_CONSTANT_SIZE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_8 = ::std::os::raw::c_int;
pub const MONO_CUSTOM_ATTR_PARENT: ::std::os::raw::c_int = 0;
pub const MONO_CUSTOM_ATTR_TYPE: ::std::os::raw::c_int = 1;
pub const MONO_CUSTOM_ATTR_VALUE: ::std::os::raw::c_int = 2;
pub const MONO_CUSTOM_ATTR_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_9 = ::std::os::raw::c_int;
pub const MONO_DECL_SECURITY_ACTION: ::std::os::raw::c_int = 0;
pub const MONO_DECL_SECURITY_PARENT: ::std::os::raw::c_int = 1;
pub const MONO_DECL_SECURITY_PERMISSIONSET: ::std::os::raw::c_int = 2;
pub const MONO_DECL_SECURITY_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_10 = ::std::os::raw::c_int;
pub const MONO_EVENT_MAP_PARENT: ::std::os::raw::c_int = 0;
pub const MONO_EVENT_MAP_EVENTLIST: ::std::os::raw::c_int = 1;
pub const MONO_EVENT_MAP_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_11 = ::std::os::raw::c_int;
pub const MONO_EVENT_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_EVENT_NAME: ::std::os::raw::c_int = 1;
pub const MONO_EVENT_TYPE: ::std::os::raw::c_int = 2;
pub const MONO_EVENT_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_12 = ::std::os::raw::c_int;
pub const MONO_EVENT_POINTER_EVENT: ::std::os::raw::c_int = 0;
pub const MONO_EVENT_POINTER_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_13 = ::std::os::raw::c_int;
pub const MONO_EXP_TYPE_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_EXP_TYPE_TYPEDEF: ::std::os::raw::c_int = 1;
pub const MONO_EXP_TYPE_NAME: ::std::os::raw::c_int = 2;
pub const MONO_EXP_TYPE_NAMESPACE: ::std::os::raw::c_int = 3;
pub const MONO_EXP_TYPE_IMPLEMENTATION: ::std::os::raw::c_int = 4;
pub const MONO_EXP_TYPE_SIZE: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_14 = ::std::os::raw::c_int;
pub const MONO_FIELD_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_FIELD_NAME: ::std::os::raw::c_int = 1;
pub const MONO_FIELD_SIGNATURE: ::std::os::raw::c_int = 2;
pub const MONO_FIELD_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_15 = ::std::os::raw::c_int;
pub const MONO_FIELD_LAYOUT_OFFSET: ::std::os::raw::c_int = 0;
pub const MONO_FIELD_LAYOUT_FIELD: ::std::os::raw::c_int = 1;
pub const MONO_FIELD_LAYOUT_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_16 = ::std::os::raw::c_int;
pub const MONO_FIELD_MARSHAL_PARENT: ::std::os::raw::c_int = 0;
pub const MONO_FIELD_MARSHAL_NATIVE_TYPE: ::std::os::raw::c_int = 1;
pub const MONO_FIELD_MARSHAL_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_17 = ::std::os::raw::c_int;
pub const MONO_FIELD_POINTER_FIELD: ::std::os::raw::c_int = 0;
pub const MONO_FIELD_POINTER_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_18 = ::std::os::raw::c_int;
pub const MONO_FIELD_RVA_RVA: ::std::os::raw::c_int = 0;
pub const MONO_FIELD_RVA_FIELD: ::std::os::raw::c_int = 1;
pub const MONO_FIELD_RVA_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_19 = ::std::os::raw::c_int;
pub const MONO_FILE_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_FILE_NAME: ::std::os::raw::c_int = 1;
pub const MONO_FILE_HASH_VALUE: ::std::os::raw::c_int = 2;
pub const MONO_FILE_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_20 = ::std::os::raw::c_int;
pub const MONO_IMPLMAP_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_IMPLMAP_MEMBER: ::std::os::raw::c_int = 1;
pub const MONO_IMPLMAP_NAME: ::std::os::raw::c_int = 2;
pub const MONO_IMPLMAP_SCOPE: ::std::os::raw::c_int = 3;
pub const MONO_IMPLMAP_SIZE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_21 = ::std::os::raw::c_int;
pub const MONO_INTERFACEIMPL_CLASS: ::std::os::raw::c_int = 0;
pub const MONO_INTERFACEIMPL_INTERFACE: ::std::os::raw::c_int = 1;
pub const MONO_INTERFACEIMPL_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_22 = ::std::os::raw::c_int;
pub const MONO_MANIFEST_OFFSET: ::std::os::raw::c_int = 0;
pub const MONO_MANIFEST_FLAGS: ::std::os::raw::c_int = 1;
pub const MONO_MANIFEST_NAME: ::std::os::raw::c_int = 2;
pub const MONO_MANIFEST_IMPLEMENTATION: ::std::os::raw::c_int = 3;
pub const MONO_MANIFEST_SIZE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_23 = ::std::os::raw::c_int;
pub const MONO_MEMBERREF_CLASS: ::std::os::raw::c_int = 0;
pub const MONO_MEMBERREF_NAME: ::std::os::raw::c_int = 1;
pub const MONO_MEMBERREF_SIGNATURE: ::std::os::raw::c_int = 2;
pub const MONO_MEMBERREF_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_24 = ::std::os::raw::c_int;
pub const MONO_METHOD_RVA: ::std::os::raw::c_int = 0;
pub const MONO_METHOD_IMPLFLAGS: ::std::os::raw::c_int = 1;
pub const MONO_METHOD_FLAGS: ::std::os::raw::c_int = 2;
pub const MONO_METHOD_NAME: ::std::os::raw::c_int = 3;
pub const MONO_METHOD_SIGNATURE: ::std::os::raw::c_int = 4;
pub const MONO_METHOD_PARAMLIST: ::std::os::raw::c_int = 5;
pub const MONO_METHOD_SIZE: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_25 = ::std::os::raw::c_int;
pub const MONO_METHODIMPL_CLASS: ::std::os::raw::c_int = 0;
pub const MONO_METHODIMPL_BODY: ::std::os::raw::c_int = 1;
pub const MONO_METHODIMPL_DECLARATION: ::std::os::raw::c_int = 2;
pub const MONO_METHODIMPL_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_26 = ::std::os::raw::c_int;
pub const MONO_METHOD_POINTER_METHOD: ::std::os::raw::c_int = 0;
pub const MONO_METHOD_POINTER_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_27 = ::std::os::raw::c_int;
pub const MONO_METHOD_SEMA_SEMANTICS: ::std::os::raw::c_int = 0;
pub const MONO_METHOD_SEMA_METHOD: ::std::os::raw::c_int = 1;
pub const MONO_METHOD_SEMA_ASSOCIATION: ::std::os::raw::c_int = 2;
pub const MONO_METHOD_SEMA_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_28 = ::std::os::raw::c_int;
pub const MONO_MODULE_GENERATION: ::std::os::raw::c_int = 0;
pub const MONO_MODULE_NAME: ::std::os::raw::c_int = 1;
pub const MONO_MODULE_MVID: ::std::os::raw::c_int = 2;
pub const MONO_MODULE_ENC: ::std::os::raw::c_int = 3;
pub const MONO_MODULE_ENCBASE: ::std::os::raw::c_int = 4;
pub const MONO_MODULE_SIZE: ::std::os::raw::c_int = 5;
pub type _bindgen_ty_29 = ::std::os::raw::c_int;
pub const MONO_MODULEREF_NAME: ::std::os::raw::c_int = 0;
pub const MONO_MODULEREF_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_30 = ::std::os::raw::c_int;
pub const MONO_NESTED_CLASS_NESTED: ::std::os::raw::c_int = 0;
pub const MONO_NESTED_CLASS_ENCLOSING: ::std::os::raw::c_int = 1;
pub const MONO_NESTED_CLASS_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_31 = ::std::os::raw::c_int;
pub const MONO_PARAM_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_PARAM_SEQUENCE: ::std::os::raw::c_int = 1;
pub const MONO_PARAM_NAME: ::std::os::raw::c_int = 2;
pub const MONO_PARAM_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_32 = ::std::os::raw::c_int;
pub const MONO_PARAM_POINTER_PARAM: ::std::os::raw::c_int = 0;
pub const MONO_PARAM_POINTER_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_33 = ::std::os::raw::c_int;
pub const MONO_PROPERTY_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_PROPERTY_NAME: ::std::os::raw::c_int = 1;
pub const MONO_PROPERTY_TYPE: ::std::os::raw::c_int = 2;
pub const MONO_PROPERTY_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_34 = ::std::os::raw::c_int;
pub const MONO_PROPERTY_POINTER_PROPERTY: ::std::os::raw::c_int = 0;
pub const MONO_PROPERTY_POINTER_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_35 = ::std::os::raw::c_int;
pub const MONO_PROPERTY_MAP_PARENT: ::std::os::raw::c_int = 0;
pub const MONO_PROPERTY_MAP_PROPERTY_LIST: ::std::os::raw::c_int = 1;
pub const MONO_PROPERTY_MAP_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_36 = ::std::os::raw::c_int;
pub const MONO_STAND_ALONE_SIGNATURE: ::std::os::raw::c_int = 0;
pub const MONO_STAND_ALONE_SIGNATURE_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_37 = ::std::os::raw::c_int;
pub const MONO_TYPEDEF_FLAGS: ::std::os::raw::c_int = 0;
pub const MONO_TYPEDEF_NAME: ::std::os::raw::c_int = 1;
pub const MONO_TYPEDEF_NAMESPACE: ::std::os::raw::c_int = 2;
pub const MONO_TYPEDEF_EXTENDS: ::std::os::raw::c_int = 3;
pub const MONO_TYPEDEF_FIELD_LIST: ::std::os::raw::c_int = 4;
pub const MONO_TYPEDEF_METHOD_LIST: ::std::os::raw::c_int = 5;
pub const MONO_TYPEDEF_SIZE: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_38 = ::std::os::raw::c_int;
pub const MONO_TYPEREF_SCOPE: ::std::os::raw::c_int = 0;
pub const MONO_TYPEREF_NAME: ::std::os::raw::c_int = 1;
pub const MONO_TYPEREF_NAMESPACE: ::std::os::raw::c_int = 2;
pub const MONO_TYPEREF_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_39 = ::std::os::raw::c_int;
pub const MONO_TYPESPEC_SIGNATURE: ::std::os::raw::c_int = 0;
pub const MONO_TYPESPEC_SIZE: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_40 = ::std::os::raw::c_int;
pub const MONO_GENERICPARAM_NUMBER: ::std::os::raw::c_int = 0;
pub const MONO_GENERICPARAM_FLAGS: ::std::os::raw::c_int = 1;
pub const MONO_GENERICPARAM_OWNER: ::std::os::raw::c_int = 2;
pub const MONO_GENERICPARAM_NAME: ::std::os::raw::c_int = 3;
pub const MONO_GENERICPARAM_SIZE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_41 = ::std::os::raw::c_int;
pub const MONO_METHODSPEC_METHOD: ::std::os::raw::c_int = 0;
pub const MONO_METHODSPEC_SIGNATURE: ::std::os::raw::c_int = 1;
pub const MONO_METHODSPEC_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_42 = ::std::os::raw::c_int;
pub const MONO_GENPARCONSTRAINT_GENERICPAR: ::std::os::raw::c_int = 0;
pub const MONO_GENPARCONSTRAINT_CONSTRAINT: ::std::os::raw::c_int = 1;
pub const MONO_GENPARCONSTRAINT_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_43 = ::std::os::raw::c_int;
pub const MONO_DOCUMENT_NAME: ::std::os::raw::c_int = 0;
pub const MONO_DOCUMENT_HASHALG: ::std::os::raw::c_int = 1;
pub const MONO_DOCUMENT_HASH: ::std::os::raw::c_int = 2;
pub const MONO_DOCUMENT_LANGUAGE: ::std::os::raw::c_int = 3;
pub const MONO_DOCUMENT_SIZE: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_44 = ::std::os::raw::c_int;
pub const MONO_METHODBODY_DOCUMENT: ::std::os::raw::c_int = 0;
pub const MONO_METHODBODY_SEQ_POINTS: ::std::os::raw::c_int = 1;
pub const MONO_METHODBODY_SIZE: ::std::os::raw::c_int = 2;
pub type _bindgen_ty_45 = ::std::os::raw::c_int;
pub const MONO_LOCALSCOPE_METHOD: ::std::os::raw::c_int = 0;
pub const MONO_LOCALSCOPE_IMPORTSCOPE: ::std::os::raw::c_int = 1;
pub const MONO_LOCALSCOPE_VARIABLELIST: ::std::os::raw::c_int = 2;
pub const MONO_LOCALSCOPE_CONSTANTLIST: ::std::os::raw::c_int = 3;
pub const MONO_LOCALSCOPE_STARTOFFSET: ::std::os::raw::c_int = 4;
pub const MONO_LOCALSCOPE_LENGTH: ::std::os::raw::c_int = 5;
pub const MONO_LOCALSCOPE_SIZE: ::std::os::raw::c_int = 6;
pub type _bindgen_ty_46 = ::std::os::raw::c_int;
pub const MONO_LOCALVARIABLE_ATTRIBUTES: ::std::os::raw::c_int = 0;
pub const MONO_LOCALVARIABLE_INDEX: ::std::os::raw::c_int = 1;
pub const MONO_LOCALVARIABLE_NAME: ::std::os::raw::c_int = 2;
pub const MONO_LOCALVARIABLE_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_47 = ::std::os::raw::c_int;
pub const MONO_CUSTOMDEBUGINFORMATION_PARENT: ::std::os::raw::c_int = 0;
pub const MONO_CUSTOMDEBUGINFORMATION_KIND: ::std::os::raw::c_int = 1;
pub const MONO_CUSTOMDEBUGINFORMATION_VALUE: ::std::os::raw::c_int = 2;
pub const MONO_CUSTOMDEBUGINFORMATION_SIZE: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_48 = ::std::os::raw::c_int;
pub const MONO_TYPEDEFORREF_TYPEDEF: ::std::os::raw::c_int = 0;
pub const MONO_TYPEDEFORREF_TYPEREF: ::std::os::raw::c_int = 1;
pub const MONO_TYPEDEFORREF_TYPESPEC: ::std::os::raw::c_int = 2;
pub const MONO_TYPEDEFORREF_BITS: ::std::os::raw::c_int = 2;
pub const MONO_TYPEDEFORREF_MASK: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_49 = ::std::os::raw::c_int;
pub const MONO_HASCONSTANT_FIEDDEF: ::std::os::raw::c_int = 0;
pub const MONO_HASCONSTANT_PARAM: ::std::os::raw::c_int = 1;
pub const MONO_HASCONSTANT_PROPERTY: ::std::os::raw::c_int = 2;
pub const MONO_HASCONSTANT_BITS: ::std::os::raw::c_int = 2;
pub const MONO_HASCONSTANT_MASK: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_50 = ::std::os::raw::c_int;
pub const MONO_CUSTOM_ATTR_METHODDEF: ::std::os::raw::c_int = 0;
pub const MONO_CUSTOM_ATTR_FIELDDEF: ::std::os::raw::c_int = 1;
pub const MONO_CUSTOM_ATTR_TYPEREF: ::std::os::raw::c_int = 2;
pub const MONO_CUSTOM_ATTR_TYPEDEF: ::std::os::raw::c_int = 3;
pub const MONO_CUSTOM_ATTR_PARAMDEF: ::std::os::raw::c_int = 4;
pub const MONO_CUSTOM_ATTR_INTERFACE: ::std::os::raw::c_int = 5;
pub const MONO_CUSTOM_ATTR_MEMBERREF: ::std::os::raw::c_int = 6;
pub const MONO_CUSTOM_ATTR_MODULE: ::std::os::raw::c_int = 7;
pub const MONO_CUSTOM_ATTR_PERMISSION: ::std::os::raw::c_int = 8;
pub const MONO_CUSTOM_ATTR_PROPERTY: ::std::os::raw::c_int = 9;
pub const MONO_CUSTOM_ATTR_EVENT: ::std::os::raw::c_int = 10;
pub const MONO_CUSTOM_ATTR_SIGNATURE: ::std::os::raw::c_int = 11;
pub const MONO_CUSTOM_ATTR_MODULEREF: ::std::os::raw::c_int = 12;
pub const MONO_CUSTOM_ATTR_TYPESPEC: ::std::os::raw::c_int = 13;
pub const MONO_CUSTOM_ATTR_ASSEMBLY: ::std::os::raw::c_int = 14;
pub const MONO_CUSTOM_ATTR_ASSEMBLYREF: ::std::os::raw::c_int = 15;
pub const MONO_CUSTOM_ATTR_FILE: ::std::os::raw::c_int = 16;
pub const MONO_CUSTOM_ATTR_EXP_TYPE: ::std::os::raw::c_int = 17;
pub const MONO_CUSTOM_ATTR_MANIFEST: ::std::os::raw::c_int = 18;
pub const MONO_CUSTOM_ATTR_GENERICPAR: ::std::os::raw::c_int = 19;
pub const MONO_CUSTOM_ATTR_GENERICPARAMCONSTRAINT: ::std::os::raw::c_int = 20;
pub const MONO_CUSTOM_ATTR_BITS: ::std::os::raw::c_int = 5;
pub const MONO_CUSTOM_ATTR_MASK: ::std::os::raw::c_int = 31;
pub type _bindgen_ty_51 = ::std::os::raw::c_int;
pub const MONO_HAS_FIELD_MARSHAL_FIELDSREF: ::std::os::raw::c_int = 0;
pub const MONO_HAS_FIELD_MARSHAL_PARAMDEF: ::std::os::raw::c_int = 1;
pub const MONO_HAS_FIELD_MARSHAL_BITS: ::std::os::raw::c_int = 1;
pub const MONO_HAS_FIELD_MARSHAL_MASK: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_52 = ::std::os::raw::c_int;
pub const MONO_HAS_DECL_SECURITY_TYPEDEF: ::std::os::raw::c_int = 0;
pub const MONO_HAS_DECL_SECURITY_METHODDEF: ::std::os::raw::c_int = 1;
pub const MONO_HAS_DECL_SECURITY_ASSEMBLY: ::std::os::raw::c_int = 2;
pub const MONO_HAS_DECL_SECURITY_BITS: ::std::os::raw::c_int = 2;
pub const MONO_HAS_DECL_SECURITY_MASK: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_53 = ::std::os::raw::c_int;
pub const MONO_MEMBERREF_PARENT_TYPEDEF: ::std::os::raw::c_int = 0;
pub const MONO_MEMBERREF_PARENT_TYPEREF: ::std::os::raw::c_int = 1;
pub const MONO_MEMBERREF_PARENT_MODULEREF: ::std::os::raw::c_int = 2;
pub const MONO_MEMBERREF_PARENT_METHODDEF: ::std::os::raw::c_int = 3;
pub const MONO_MEMBERREF_PARENT_TYPESPEC: ::std::os::raw::c_int = 4;
pub const MONO_MEMBERREF_PARENT_BITS: ::std::os::raw::c_int = 3;
pub const MONO_MEMBERREF_PARENT_MASK: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_54 = ::std::os::raw::c_int;
pub const MONO_HAS_SEMANTICS_EVENT: ::std::os::raw::c_int = 0;
pub const MONO_HAS_SEMANTICS_PROPERTY: ::std::os::raw::c_int = 1;
pub const MONO_HAS_SEMANTICS_BITS: ::std::os::raw::c_int = 1;
pub const MONO_HAS_SEMANTICS_MASK: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_55 = ::std::os::raw::c_int;
pub const MONO_METHODDEFORREF_METHODDEF: ::std::os::raw::c_int = 0;
pub const MONO_METHODDEFORREF_METHODREF: ::std::os::raw::c_int = 1;
pub const MONO_METHODDEFORREF_BITS: ::std::os::raw::c_int = 1;
pub const MONO_METHODDEFORREF_MASK: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_56 = ::std::os::raw::c_int;
pub const MONO_MEMBERFORWD_FIELDDEF: ::std::os::raw::c_int = 0;
pub const MONO_MEMBERFORWD_METHODDEF: ::std::os::raw::c_int = 1;
pub const MONO_MEMBERFORWD_BITS: ::std::os::raw::c_int = 1;
pub const MONO_MEMBERFORWD_MASK: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_57 = ::std::os::raw::c_int;
pub const MONO_IMPLEMENTATION_FILE: ::std::os::raw::c_int = 0;
pub const MONO_IMPLEMENTATION_ASSEMBLYREF: ::std::os::raw::c_int = 1;
pub const MONO_IMPLEMENTATION_EXP_TYPE: ::std::os::raw::c_int = 2;
pub const MONO_IMPLEMENTATION_BITS: ::std::os::raw::c_int = 2;
pub const MONO_IMPLEMENTATION_MASK: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_58 = ::std::os::raw::c_int;
pub const MONO_CUSTOM_ATTR_TYPE_TYPEREF: ::std::os::raw::c_int = 0;
pub const MONO_CUSTOM_ATTR_TYPE_TYPEDEF: ::std::os::raw::c_int = 1;
pub const MONO_CUSTOM_ATTR_TYPE_METHODDEF: ::std::os::raw::c_int = 2;
pub const MONO_CUSTOM_ATTR_TYPE_MEMBERREF: ::std::os::raw::c_int = 3;
pub const MONO_CUSTOM_ATTR_TYPE_STRING: ::std::os::raw::c_int = 4;
pub const MONO_CUSTOM_ATTR_TYPE_BITS: ::std::os::raw::c_int = 3;
pub const MONO_CUSTOM_ATTR_TYPE_MASK: ::std::os::raw::c_int = 7;
pub type _bindgen_ty_59 = ::std::os::raw::c_int;
pub const MONO_RESOLUTION_SCOPE_MODULE: ::std::os::raw::c_int = 0;
pub const MONO_RESOLUTION_SCOPE_MODULEREF: ::std::os::raw::c_int = 1;
pub const MONO_RESOLUTION_SCOPE_ASSEMBLYREF: ::std::os::raw::c_int = 2;
pub const MONO_RESOLUTION_SCOPE_TYPEREF: ::std::os::raw::c_int = 3;
pub const MONO_RESOLUTION_SCOPE_BITS: ::std::os::raw::c_int = 2;
pub const MONO_RESOLUTION_SCOPE_MASK: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_60 = ::std::os::raw::c_int;
pub const MONO_RESOLTION_SCOPE_MODULE: ::std::os::raw::c_int = 0;
pub const MONO_RESOLTION_SCOPE_MODULEREF: ::std::os::raw::c_int = 1;
pub const MONO_RESOLTION_SCOPE_ASSEMBLYREF: ::std::os::raw::c_int = 2;
pub const MONO_RESOLTION_SCOPE_TYPEREF: ::std::os::raw::c_int = 3;
pub const MONO_RESOLTION_SCOPE_BITS: ::std::os::raw::c_int = 2;
pub const MONO_RESOLTION_SCOPE_MASK: ::std::os::raw::c_int = 3;
pub type _bindgen_ty_61 = ::std::os::raw::c_int;
pub const MONO_TYPEORMETHOD_TYPE: ::std::os::raw::c_int = 0;
pub const MONO_TYPEORMETHOD_METHOD: ::std::os::raw::c_int = 1;
pub const MONO_TYPEORMETHOD_BITS: ::std::os::raw::c_int = 1;
pub const MONO_TYPEORMETHOD_MASK: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_62 = ::std::os::raw::c_int;
pub type fpos_t = ::std::os::raw::c_longlong;
extern "C" {
    pub fn _get_stream_buffer_pointers(
        _Stream: *mut FILE,
        _Base: *mut *mut *mut ::std::os::raw::c_char,
        _Pointer: *mut *mut *mut ::std::os::raw::c_char,
        _Count: *mut *mut ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn clearerr_s(_Stream: *mut FILE) -> errno_t;
}
extern "C" {
    pub fn fopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn fread_s(
        _Buffer: *mut ::std::os::raw::c_void,
        _BufferSize: size_t,
        _ElementSize: size_t,
        _ElementCount: size_t,
        _Stream: *mut FILE,
    ) -> size_t;
}
extern "C" {
    pub fn freopen_s(
        _Stream: *mut *mut FILE,
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _OldStream: *mut FILE,
    ) -> errno_t;
}
extern "C" {
    pub fn gets_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _Size: rsize_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn tmpfile_s(_Stream: *mut *mut FILE) -> errno_t;
}
extern "C" {
    pub fn tmpnam_s(_Buffer: *mut ::std::os::raw::c_char, _Size: rsize_t) -> errno_t;
}
extern "C" {
    pub fn clearerr(_Stream: *mut FILE);
}
extern "C" {
    pub fn fclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fcloseall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fdopen(
        _FileHandle: ::std::os::raw::c_int,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn feof(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ferror(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fflush(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fgetchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetpos(_Stream: *mut FILE, _Position: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgets(
        _Buffer: *mut ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _flushall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fopen(
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fputc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fputchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputs(
        _Buffer: *const ::std::os::raw::c_char,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fread(
        _Buffer: *mut ::std::os::raw::c_void,
        _ElementSize: ::std::os::raw::c_ulonglong,
        _ElementCount: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn freopen(
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _Stream: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn _fsopen(
        _FileName: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
        _ShFlag: ::std::os::raw::c_int,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fsetpos(_Stream: *mut FILE, _Position: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fseek(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_long,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fseeki64(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_longlong,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftell(_Stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _ftelli64(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn fwrite(
        _Buffer: *const ::std::os::raw::c_void,
        _ElementSize: ::std::os::raw::c_ulonglong,
        _ElementCount: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn getc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getmaxstdio() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _pclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _popen(
        _Command: *const ::std::os::raw::c_char,
        _Mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn putc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn puts(_Buffer: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putw(_Word: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn remove(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rename(
        _OldFileName: *const ::std::os::raw::c_char,
        _NewFileName: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rewind(_Stream: *mut FILE);
}
extern "C" {
    pub fn _rmtmp() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setbuf(_Stream: *mut FILE, _Buffer: *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn _setmaxstdio(_Maximum: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setvbuf(
        _Stream: *mut FILE,
        _Buffer: *mut ::std::os::raw::c_char,
        _Mode: ::std::os::raw::c_int,
        _Size: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tempnam(
        _DirectoryName: *const ::std::os::raw::c_char,
        _FilePrefix: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn tmpfile() -> *mut FILE;
}
extern "C" {
    pub fn tmpnam(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ungetc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _lock_file(_Stream: *mut FILE);
}
extern "C" {
    pub fn _unlock_file(_Stream: *mut FILE);
}
extern "C" {
    pub fn _fclose_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fflush_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fgetc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fputc_nolock(
        _Character: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fread_nolock(
        _Buffer: *mut ::std::os::raw::c_void,
        _ElementSize: size_t,
        _ElementCount: size_t,
        _Stream: *mut FILE,
    ) -> size_t;
}
extern "C" {
    pub fn _fread_nolock_s(
        _Buffer: *mut ::std::os::raw::c_void,
        _BufferSize: size_t,
        _ElementSize: size_t,
        _ElementCount: size_t,
        _Stream: *mut FILE,
    ) -> size_t;
}
extern "C" {
    pub fn _fseek_nolock(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_long,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _fseeki64_nolock(
        _Stream: *mut FILE,
        _Offset: ::std::os::raw::c_longlong,
        _Origin: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ftell_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _ftelli64_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _fwrite_nolock(
        _Buffer: *const ::std::os::raw::c_void,
        _ElementSize: size_t,
        _ElementCount: size_t,
        _Stream: *mut FILE,
    ) -> size_t;
}
extern "C" {
    pub fn _getc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putc_nolock(
        _Character: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _ungetc_nolock(
        _Character: ::std::os::raw::c_int,
        _Stream: *mut FILE,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __p__commode() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _set_printf_count_output(_Value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _get_printf_count_output() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vfscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Stream: *mut FILE,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _Arglist: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsprintf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsnprintf_s(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _MaxCount: size_t,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsprintf_p(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __stdio_common_vsscanf(
        _Options: ::std::os::raw::c_ulonglong,
        _Buffer: *const ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Format: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
        _ArgList: va_list,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tempnam(
        _Directory: *const ::std::os::raw::c_char,
        _FilePrefix: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fcloseall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fdopen(
        _FileHandle: ::std::os::raw::c_int,
        _Format: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fgetchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn flushall() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putw(_Ch: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rmtmp() -> ::std::os::raw::c_int;
}
pub const MONO_ERROR_FREE_STRINGS: ::std::os::raw::c_int = 1;
pub const MONO_ERROR_INCOMPLETE: ::std::os::raw::c_int = 2;
pub const MONO_ERROR_MEMPOOL_BOXED: ::std::os::raw::c_int = 4;
pub type _bindgen_ty_63 = ::std::os::raw::c_int;
pub const MONO_ERROR_NONE: ::std::os::raw::c_int = 0;
pub const MONO_ERROR_MISSING_METHOD: ::std::os::raw::c_int = 1;
pub const MONO_ERROR_MISSING_FIELD: ::std::os::raw::c_int = 2;
pub const MONO_ERROR_TYPE_LOAD: ::std::os::raw::c_int = 3;
pub const MONO_ERROR_FILE_NOT_FOUND: ::std::os::raw::c_int = 4;
pub const MONO_ERROR_BAD_IMAGE: ::std::os::raw::c_int = 5;
pub const MONO_ERROR_OUT_OF_MEMORY: ::std::os::raw::c_int = 6;
pub const MONO_ERROR_ARGUMENT: ::std::os::raw::c_int = 7;
pub const MONO_ERROR_ARGUMENT_NULL: ::std::os::raw::c_int = 11;
pub const MONO_ERROR_ARGUMENT_OUT_OF_RANGE: ::std::os::raw::c_int = 14;
pub const MONO_ERROR_NOT_VERIFIABLE: ::std::os::raw::c_int = 8;
pub const MONO_ERROR_INVALID_PROGRAM: ::std::os::raw::c_int = 12;
pub const MONO_ERROR_MEMBER_ACCESS: ::std::os::raw::c_int = 13;
pub const MONO_ERROR_GENERIC: ::std::os::raw::c_int = 9;
pub const MONO_ERROR_EXCEPTION_INSTANCE: ::std::os::raw::c_int = 10;
pub const MONO_ERROR_CLEANUP_CALLED_SENTINEL: ::std::os::raw::c_int = 65535;
pub type _bindgen_ty_64 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _MonoError {
    pub init: u32,
    pub __bindgen_anon_1: _MonoError__bindgen_ty_1,
    _bindgen_union_align: [u64; 13usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoError__bindgen_ty_1 {
    pub error_code: u16,
    pub private_flags: u16,
    pub hidden_1: [*mut ::std::os::raw::c_void; 12usize],
}
#[test]
fn bindgen_test_layout__MonoError__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_MonoError__bindgen_ty_1>(),
        104usize,
        concat!("Size of: ", stringify!(_MonoError__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_MonoError__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_MonoError__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MonoError__bindgen_ty_1>())).error_code as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoError__bindgen_ty_1),
            "::",
            stringify!(error_code)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MonoError__bindgen_ty_1>())).private_flags as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoError__bindgen_ty_1),
            "::",
            stringify!(private_flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MonoError__bindgen_ty_1>())).hidden_1 as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoError__bindgen_ty_1),
            "::",
            stringify!(hidden_1)
        )
    );
}
#[test]
fn bindgen_test_layout__MonoError() {
    assert_eq!(
        ::std::mem::size_of::<_MonoError>(),
        104usize,
        concat!("Size of: ", stringify!(_MonoError))
    );
    assert_eq!(
        ::std::mem::align_of::<_MonoError>(),
        8usize,
        concat!("Alignment of ", stringify!(_MonoError))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoError>())).init as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoError),
            "::",
            stringify!(init)
        )
    );
}
pub type MonoErrorExternal = _MonoError;
pub type MonoError = MonoErrorExternal;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoErrorBoxed {
    _unused: [u8; 0],
}
pub type MonoErrorBoxed = _MonoErrorBoxed;
extern "C" {
    pub fn mono_error_init(error: *mut MonoError);
}
extern "C" {
    pub fn mono_error_init_flags(error: *mut MonoError, flags: ::std::os::raw::c_ushort);
}
extern "C" {
    pub fn mono_error_cleanup(error: *mut MonoError);
}
extern "C" {
    pub fn mono_error_ok(error: *mut MonoError) -> mono_bool;
}
extern "C" {
    pub fn mono_error_get_error_code(error: *mut MonoError) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn mono_error_get_message(error: *mut MonoError) -> *const ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoAssembly {
    _unused: [u8; 0],
}
pub type MonoAssembly = _MonoAssembly;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoAssemblyName {
    _unused: [u8; 0],
}
pub type MonoAssemblyName = _MonoAssemblyName;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoTableInfo {
    _unused: [u8; 0],
}
pub type MonoTableInfo = _MonoTableInfo;
pub const MonoImageOpenStatus_MONO_IMAGE_OK: MonoImageOpenStatus = 0;
pub const MonoImageOpenStatus_MONO_IMAGE_ERROR_ERRNO: MonoImageOpenStatus = 1;
pub const MonoImageOpenStatus_MONO_IMAGE_MISSING_ASSEMBLYREF: MonoImageOpenStatus = 2;
pub const MonoImageOpenStatus_MONO_IMAGE_IMAGE_INVALID: MonoImageOpenStatus = 3;
pub type MonoImageOpenStatus = ::std::os::raw::c_int;
extern "C" {
    pub fn mono_images_init();
}
extern "C" {
    pub fn mono_images_cleanup();
}
extern "C" {
    pub fn mono_image_open(
        fname: *const ::std::os::raw::c_char,
        status: *mut MonoImageOpenStatus,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_open_full(
        fname: *const ::std::os::raw::c_char,
        status: *mut MonoImageOpenStatus,
        refonly: mono_bool,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_pe_file_open(
        fname: *const ::std::os::raw::c_char,
        status: *mut MonoImageOpenStatus,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_open_from_data(
        data: *mut ::std::os::raw::c_char,
        data_len: u32,
        need_copy: mono_bool,
        status: *mut MonoImageOpenStatus,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_open_from_data_full(
        data: *mut ::std::os::raw::c_char,
        data_len: u32,
        need_copy: mono_bool,
        status: *mut MonoImageOpenStatus,
        refonly: mono_bool,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_open_from_data_with_name(
        data: *mut ::std::os::raw::c_char,
        data_len: u32,
        need_copy: mono_bool,
        status: *mut MonoImageOpenStatus,
        refonly: mono_bool,
        name: *const ::std::os::raw::c_char,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_fixup_vtable(image: *mut MonoImage);
}
extern "C" {
    pub fn mono_image_loaded(name: *const ::std::os::raw::c_char) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_loaded_full(
        name: *const ::std::os::raw::c_char,
        refonly: mono_bool,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_loaded_by_guid(guid: *const ::std::os::raw::c_char) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_loaded_by_guid_full(
        guid: *const ::std::os::raw::c_char,
        refonly: mono_bool,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_init(image: *mut MonoImage);
}
extern "C" {
    pub fn mono_image_close(image: *mut MonoImage);
}
extern "C" {
    pub fn mono_image_addref(image: *mut MonoImage);
}
extern "C" {
    pub fn mono_image_strerror(status: MonoImageOpenStatus) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_ensure_section(
        image: *mut MonoImage,
        section: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_image_ensure_section_idx(
        image: *mut MonoImage,
        section: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_image_get_entry_point(image: *mut MonoImage) -> u32;
}
extern "C" {
    pub fn mono_image_get_resource(
        image: *mut MonoImage,
        offset: u32,
        size: *mut u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_load_file_for_image(
        image: *mut MonoImage,
        fileidx: ::std::os::raw::c_int,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_load_module(
        image: *mut MonoImage,
        idx: ::std::os::raw::c_int,
    ) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_image_get_name(image: *mut MonoImage) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_get_filename(image: *mut MonoImage) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_get_guid(image: *mut MonoImage) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_get_assembly(image: *mut MonoImage) -> *mut MonoAssembly;
}
extern "C" {
    pub fn mono_image_is_dynamic(image: *mut MonoImage) -> mono_bool;
}
extern "C" {
    pub fn mono_image_rva_map(image: *mut MonoImage, rva: u32) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_get_table_info(
        image: *mut MonoImage,
        table_id: ::std::os::raw::c_int,
    ) -> *const MonoTableInfo;
}
extern "C" {
    pub fn mono_image_get_table_rows(
        image: *mut MonoImage,
        table_id: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_table_info_get_rows(table: *const MonoTableInfo) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_image_lookup_resource(
        image: *mut MonoImage,
        res_id: u32,
        lang_id: u32,
        name: *mut mono_unichar2,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_image_get_public_key(
        image: *mut MonoImage,
        size: *mut u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_get_strong_name(
        image: *mut MonoImage,
        size: *mut u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_image_strong_name_position(image: *mut MonoImage, size: *mut u32) -> u32;
}
extern "C" {
    pub fn mono_image_add_to_name_cache(
        image: *mut MonoImage,
        nspace: *const ::std::os::raw::c_char,
        name: *const ::std::os::raw::c_char,
        idx: u32,
    );
}
extern "C" {
    pub fn mono_image_has_authenticode_entry(image: *mut MonoImage) -> mono_bool;
}
pub const MonoExceptionEnum_MONO_EXCEPTION_CLAUSE_NONE: MonoExceptionEnum = 0;
pub const MonoExceptionEnum_MONO_EXCEPTION_CLAUSE_FILTER: MonoExceptionEnum = 1;
pub const MonoExceptionEnum_MONO_EXCEPTION_CLAUSE_FINALLY: MonoExceptionEnum = 2;
pub const MonoExceptionEnum_MONO_EXCEPTION_CLAUSE_FAULT: MonoExceptionEnum = 4;
pub type MonoExceptionEnum = ::std::os::raw::c_int;
pub const MonoCallConvention_MONO_CALL_DEFAULT: MonoCallConvention = 0;
pub const MonoCallConvention_MONO_CALL_C: MonoCallConvention = 1;
pub const MonoCallConvention_MONO_CALL_STDCALL: MonoCallConvention = 2;
pub const MonoCallConvention_MONO_CALL_THISCALL: MonoCallConvention = 3;
pub const MonoCallConvention_MONO_CALL_FASTCALL: MonoCallConvention = 4;
pub const MonoCallConvention_MONO_CALL_VARARG: MonoCallConvention = 5;
pub type MonoCallConvention = ::std::os::raw::c_int;
pub const MonoMarshalNative_MONO_NATIVE_BOOLEAN: MonoMarshalNative = 2;
pub const MonoMarshalNative_MONO_NATIVE_I1: MonoMarshalNative = 3;
pub const MonoMarshalNative_MONO_NATIVE_U1: MonoMarshalNative = 4;
pub const MonoMarshalNative_MONO_NATIVE_I2: MonoMarshalNative = 5;
pub const MonoMarshalNative_MONO_NATIVE_U2: MonoMarshalNative = 6;
pub const MonoMarshalNative_MONO_NATIVE_I4: MonoMarshalNative = 7;
pub const MonoMarshalNative_MONO_NATIVE_U4: MonoMarshalNative = 8;
pub const MonoMarshalNative_MONO_NATIVE_I8: MonoMarshalNative = 9;
pub const MonoMarshalNative_MONO_NATIVE_U8: MonoMarshalNative = 10;
pub const MonoMarshalNative_MONO_NATIVE_R4: MonoMarshalNative = 11;
pub const MonoMarshalNative_MONO_NATIVE_R8: MonoMarshalNative = 12;
pub const MonoMarshalNative_MONO_NATIVE_CURRENCY: MonoMarshalNative = 15;
pub const MonoMarshalNative_MONO_NATIVE_BSTR: MonoMarshalNative = 19;
pub const MonoMarshalNative_MONO_NATIVE_LPSTR: MonoMarshalNative = 20;
pub const MonoMarshalNative_MONO_NATIVE_LPWSTR: MonoMarshalNative = 21;
pub const MonoMarshalNative_MONO_NATIVE_LPTSTR: MonoMarshalNative = 22;
pub const MonoMarshalNative_MONO_NATIVE_BYVALTSTR: MonoMarshalNative = 23;
pub const MonoMarshalNative_MONO_NATIVE_IUNKNOWN: MonoMarshalNative = 25;
pub const MonoMarshalNative_MONO_NATIVE_IDISPATCH: MonoMarshalNative = 26;
pub const MonoMarshalNative_MONO_NATIVE_STRUCT: MonoMarshalNative = 27;
pub const MonoMarshalNative_MONO_NATIVE_INTERFACE: MonoMarshalNative = 28;
pub const MonoMarshalNative_MONO_NATIVE_SAFEARRAY: MonoMarshalNative = 29;
pub const MonoMarshalNative_MONO_NATIVE_BYVALARRAY: MonoMarshalNative = 30;
pub const MonoMarshalNative_MONO_NATIVE_INT: MonoMarshalNative = 31;
pub const MonoMarshalNative_MONO_NATIVE_UINT: MonoMarshalNative = 32;
pub const MonoMarshalNative_MONO_NATIVE_VBBYREFSTR: MonoMarshalNative = 34;
pub const MonoMarshalNative_MONO_NATIVE_ANSIBSTR: MonoMarshalNative = 35;
pub const MonoMarshalNative_MONO_NATIVE_TBSTR: MonoMarshalNative = 36;
pub const MonoMarshalNative_MONO_NATIVE_VARIANTBOOL: MonoMarshalNative = 37;
pub const MonoMarshalNative_MONO_NATIVE_FUNC: MonoMarshalNative = 38;
pub const MonoMarshalNative_MONO_NATIVE_ASANY: MonoMarshalNative = 40;
pub const MonoMarshalNative_MONO_NATIVE_LPARRAY: MonoMarshalNative = 42;
pub const MonoMarshalNative_MONO_NATIVE_LPSTRUCT: MonoMarshalNative = 43;
pub const MonoMarshalNative_MONO_NATIVE_CUSTOM: MonoMarshalNative = 44;
pub const MonoMarshalNative_MONO_NATIVE_ERROR: MonoMarshalNative = 45;
pub const MonoMarshalNative_MONO_NATIVE_UTF8STR: MonoMarshalNative = 48;
pub const MonoMarshalNative_MONO_NATIVE_MAX: MonoMarshalNative = 80;
pub type MonoMarshalNative = ::std::os::raw::c_int;
pub const MonoMarshalVariant_MONO_VARIANT_EMPTY: MonoMarshalVariant = 0;
pub const MonoMarshalVariant_MONO_VARIANT_NULL: MonoMarshalVariant = 1;
pub const MonoMarshalVariant_MONO_VARIANT_I2: MonoMarshalVariant = 2;
pub const MonoMarshalVariant_MONO_VARIANT_I4: MonoMarshalVariant = 3;
pub const MonoMarshalVariant_MONO_VARIANT_R4: MonoMarshalVariant = 4;
pub const MonoMarshalVariant_MONO_VARIANT_R8: MonoMarshalVariant = 5;
pub const MonoMarshalVariant_MONO_VARIANT_CY: MonoMarshalVariant = 6;
pub const MonoMarshalVariant_MONO_VARIANT_DATE: MonoMarshalVariant = 7;
pub const MonoMarshalVariant_MONO_VARIANT_BSTR: MonoMarshalVariant = 8;
pub const MonoMarshalVariant_MONO_VARIANT_DISPATCH: MonoMarshalVariant = 9;
pub const MonoMarshalVariant_MONO_VARIANT_ERROR: MonoMarshalVariant = 10;
pub const MonoMarshalVariant_MONO_VARIANT_BOOL: MonoMarshalVariant = 11;
pub const MonoMarshalVariant_MONO_VARIANT_VARIANT: MonoMarshalVariant = 12;
pub const MonoMarshalVariant_MONO_VARIANT_UNKNOWN: MonoMarshalVariant = 13;
pub const MonoMarshalVariant_MONO_VARIANT_DECIMAL: MonoMarshalVariant = 14;
pub const MonoMarshalVariant_MONO_VARIANT_I1: MonoMarshalVariant = 16;
pub const MonoMarshalVariant_MONO_VARIANT_UI1: MonoMarshalVariant = 17;
pub const MonoMarshalVariant_MONO_VARIANT_UI2: MonoMarshalVariant = 18;
pub const MonoMarshalVariant_MONO_VARIANT_UI4: MonoMarshalVariant = 19;
pub const MonoMarshalVariant_MONO_VARIANT_I8: MonoMarshalVariant = 20;
pub const MonoMarshalVariant_MONO_VARIANT_UI8: MonoMarshalVariant = 21;
pub const MonoMarshalVariant_MONO_VARIANT_INT: MonoMarshalVariant = 22;
pub const MonoMarshalVariant_MONO_VARIANT_UINT: MonoMarshalVariant = 23;
pub const MonoMarshalVariant_MONO_VARIANT_VOID: MonoMarshalVariant = 24;
pub const MonoMarshalVariant_MONO_VARIANT_HRESULT: MonoMarshalVariant = 25;
pub const MonoMarshalVariant_MONO_VARIANT_PTR: MonoMarshalVariant = 26;
pub const MonoMarshalVariant_MONO_VARIANT_SAFEARRAY: MonoMarshalVariant = 27;
pub const MonoMarshalVariant_MONO_VARIANT_CARRAY: MonoMarshalVariant = 28;
pub const MonoMarshalVariant_MONO_VARIANT_USERDEFINED: MonoMarshalVariant = 29;
pub const MonoMarshalVariant_MONO_VARIANT_LPSTR: MonoMarshalVariant = 30;
pub const MonoMarshalVariant_MONO_VARIANT_LPWSTR: MonoMarshalVariant = 31;
pub const MonoMarshalVariant_MONO_VARIANT_RECORD: MonoMarshalVariant = 36;
pub const MonoMarshalVariant_MONO_VARIANT_FILETIME: MonoMarshalVariant = 64;
pub const MonoMarshalVariant_MONO_VARIANT_BLOB: MonoMarshalVariant = 65;
pub const MonoMarshalVariant_MONO_VARIANT_STREAM: MonoMarshalVariant = 66;
pub const MonoMarshalVariant_MONO_VARIANT_STORAGE: MonoMarshalVariant = 67;
pub const MonoMarshalVariant_MONO_VARIANT_STREAMED_OBJECT: MonoMarshalVariant = 68;
pub const MonoMarshalVariant_MONO_VARIANT_STORED_OBJECT: MonoMarshalVariant = 69;
pub const MonoMarshalVariant_MONO_VARIANT_BLOB_OBJECT: MonoMarshalVariant = 70;
pub const MonoMarshalVariant_MONO_VARIANT_CF: MonoMarshalVariant = 71;
pub const MonoMarshalVariant_MONO_VARIANT_CLSID: MonoMarshalVariant = 72;
pub const MonoMarshalVariant_MONO_VARIANT_VECTOR: MonoMarshalVariant = 4096;
pub const MonoMarshalVariant_MONO_VARIANT_ARRAY: MonoMarshalVariant = 8192;
pub const MonoMarshalVariant_MONO_VARIANT_BYREF: MonoMarshalVariant = 16384;
pub type MonoMarshalVariant = ::std::os::raw::c_int;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_NONE: MonoMarshalConv = 0;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_BOOL_VARIANTBOOL: MonoMarshalConv = 1;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_BOOL_I4: MonoMarshalConv = 2;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_BSTR: MonoMarshalConv = 3;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_LPSTR: MonoMarshalConv = 4;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_LPSTR_STR: MonoMarshalConv = 5;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_LPTSTR_STR: MonoMarshalConv = 6;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_LPWSTR: MonoMarshalConv = 7;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_LPWSTR_STR: MonoMarshalConv = 8;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_LPTSTR: MonoMarshalConv = 9;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_ANSIBSTR: MonoMarshalConv = 10;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_TBSTR: MonoMarshalConv = 11;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_BYVALSTR: MonoMarshalConv = 12;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_BYVALWSTR: MonoMarshalConv = 13;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_SB_LPSTR: MonoMarshalConv = 14;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_SB_LPTSTR: MonoMarshalConv = 15;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_SB_LPWSTR: MonoMarshalConv = 16;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_LPSTR_SB: MonoMarshalConv = 17;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_LPTSTR_SB: MonoMarshalConv = 18;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_LPWSTR_SB: MonoMarshalConv = 19;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_ARRAY_BYVALARRAY: MonoMarshalConv = 20;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_ARRAY_BYVALCHARARRAY: MonoMarshalConv = 21;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_ARRAY_SAVEARRAY: MonoMarshalConv = 22;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_ARRAY_LPARRAY: MonoMarshalConv = 23;
pub const MonoMarshalConv_MONO_MARSHAL_FREE_LPARRAY: MonoMarshalConv = 24;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_OBJECT_INTERFACE: MonoMarshalConv = 25;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_OBJECT_IDISPATCH: MonoMarshalConv = 26;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_OBJECT_IUNKNOWN: MonoMarshalConv = 27;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_OBJECT_STRUCT: MonoMarshalConv = 28;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_DEL_FTN: MonoMarshalConv = 29;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_FTN_DEL: MonoMarshalConv = 30;
pub const MonoMarshalConv_MONO_MARSHAL_FREE_ARRAY: MonoMarshalConv = 31;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_BSTR_STR: MonoMarshalConv = 32;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_SAFEHANDLE: MonoMarshalConv = 33;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_HANDLEREF: MonoMarshalConv = 34;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_STR_UTF8STR: MonoMarshalConv = 35;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_SB_UTF8STR: MonoMarshalConv = 36;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_UTF8STR_STR: MonoMarshalConv = 37;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_UTF8STR_SB: MonoMarshalConv = 38;
pub const MonoMarshalConv_MONO_MARSHAL_CONV_FIXED_BUFFER: MonoMarshalConv = 39;
pub type MonoMarshalConv = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct MonoMarshalSpec {
    pub native: MonoMarshalNative,
    pub data: MonoMarshalSpec__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union MonoMarshalSpec__bindgen_ty_1 {
    pub array_data: MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1,
    pub custom_data: MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2,
    pub safearray_data: MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3,
    _bindgen_union_align: [u64; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1 {
    pub elem_type: MonoMarshalNative,
    pub num_elem: i32,
    pub param_num: i16,
    pub elem_mult: i16,
}
#[test]
fn bindgen_test_layout_MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1>())).elem_type
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(elem_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1>())).num_elem
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(num_elem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1>())).param_num
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(param_num)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1>())).elem_mult
                as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(elem_mult)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2 {
    pub custom_name: *mut ::std::os::raw::c_char,
    pub cookie: *mut ::std::os::raw::c_char,
    pub image: *mut MonoImage,
}
#[test]
fn bindgen_test_layout_MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2>())).custom_name
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(custom_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2>())).cookie
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(cookie)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2>())).image
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(image)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3 {
    pub elem_type: MonoMarshalVariant,
    pub num_elem: i32,
}
#[test]
fn bindgen_test_layout_MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3>())).elem_type
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(elem_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3>())).num_elem
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(num_elem)
        )
    );
}
#[test]
fn bindgen_test_layout_MonoMarshalSpec__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<MonoMarshalSpec__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(MonoMarshalSpec__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<MonoMarshalSpec__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(MonoMarshalSpec__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1>())).array_data as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1),
            "::",
            stringify!(array_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1>())).custom_data as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1),
            "::",
            stringify!(custom_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoMarshalSpec__bindgen_ty_1>())).safearray_data as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec__bindgen_ty_1),
            "::",
            stringify!(safearray_data)
        )
    );
}
#[test]
fn bindgen_test_layout_MonoMarshalSpec() {
    assert_eq!(
        ::std::mem::size_of::<MonoMarshalSpec>(),
        32usize,
        concat!("Size of: ", stringify!(MonoMarshalSpec))
    );
    assert_eq!(
        ::std::mem::align_of::<MonoMarshalSpec>(),
        8usize,
        concat!("Alignment of ", stringify!(MonoMarshalSpec))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoMarshalSpec>())).native as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec),
            "::",
            stringify!(native)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoMarshalSpec>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoMarshalSpec),
            "::",
            stringify!(data)
        )
    );
}
extern "C" {
    pub fn mono_metadata_init();
}
extern "C" {
    pub fn mono_metadata_decode_row(
        t: *const MonoTableInfo,
        idx: ::std::os::raw::c_int,
        res: *mut u32,
        res_size: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mono_metadata_decode_row_col(
        t: *const MonoTableInfo,
        idx: ::std::os::raw::c_int,
        col: ::std::os::raw::c_uint,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_compute_size(
        meta: *mut MonoImage,
        tableindex: ::std::os::raw::c_int,
        result_bitfield: *mut u32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_metadata_locate(
        meta: *mut MonoImage,
        table: ::std::os::raw::c_int,
        idx: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_locate_token(
        meta: *mut MonoImage,
        token: u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_string_heap(
        meta: *mut MonoImage,
        table_index: u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_blob_heap(
        meta: *mut MonoImage,
        table_index: u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_user_string(
        meta: *mut MonoImage,
        table_index: u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_guid_heap(
        meta: *mut MonoImage,
        table_index: u32,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_typedef_from_field(meta: *mut MonoImage, table_index: u32) -> u32;
}
extern "C" {
    pub fn mono_metadata_typedef_from_method(meta: *mut MonoImage, table_index: u32) -> u32;
}
extern "C" {
    pub fn mono_metadata_nested_in_typedef(meta: *mut MonoImage, table_index: u32) -> u32;
}
extern "C" {
    pub fn mono_metadata_nesting_typedef(
        meta: *mut MonoImage,
        table_index: u32,
        start_index: u32,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_interfaces_from_typedef(
        meta: *mut MonoImage,
        table_index: u32,
        count: *mut ::std::os::raw::c_uint,
    ) -> *mut *mut MonoClass;
}
extern "C" {
    pub fn mono_metadata_events_from_typedef(
        meta: *mut MonoImage,
        table_index: u32,
        end_idx: *mut ::std::os::raw::c_uint,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_methods_from_event(
        meta: *mut MonoImage,
        table_index: u32,
        end: *mut ::std::os::raw::c_uint,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_properties_from_typedef(
        meta: *mut MonoImage,
        table_index: u32,
        end: *mut ::std::os::raw::c_uint,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_methods_from_property(
        meta: *mut MonoImage,
        table_index: u32,
        end: *mut ::std::os::raw::c_uint,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_packing_from_typedef(
        meta: *mut MonoImage,
        table_index: u32,
        packing: *mut u32,
        size: *mut u32,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_get_marshal_info(
        meta: *mut MonoImage,
        idx: u32,
        is_field: mono_bool,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_custom_attrs_from_index(meta: *mut MonoImage, cattr_index: u32) -> u32;
}
extern "C" {
    pub fn mono_metadata_parse_marshal_spec(
        image: *mut MonoImage,
        ptr: *const ::std::os::raw::c_char,
    ) -> *mut MonoMarshalSpec;
}
extern "C" {
    pub fn mono_metadata_free_marshal_spec(spec: *mut MonoMarshalSpec);
}
extern "C" {
    pub fn mono_metadata_implmap_from_method(meta: *mut MonoImage, method_idx: u32) -> u32;
}
extern "C" {
    pub fn mono_metadata_field_info(
        meta: *mut MonoImage,
        table_index: u32,
        offset: *mut u32,
        rva: *mut u32,
        marshal_spec: *mut *mut MonoMarshalSpec,
    );
}
extern "C" {
    pub fn mono_metadata_get_constant_index(meta: *mut MonoImage, token: u32, hint: u32) -> u32;
}
extern "C" {
    pub fn mono_metadata_decode_value(
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_decode_signed_value(
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> i32;
}
extern "C" {
    pub fn mono_metadata_decode_blob_size(
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_encode_value(
        value: u32,
        bug: *mut ::std::os::raw::c_char,
        endbuf: *mut *mut ::std::os::raw::c_char,
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct MonoExceptionClause {
    pub flags: u32,
    pub try_offset: u32,
    pub try_len: u32,
    pub handler_offset: u32,
    pub handler_len: u32,
    pub data: MonoExceptionClause__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union MonoExceptionClause__bindgen_ty_1 {
    pub filter_offset: u32,
    pub catch_class: *mut MonoClass,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_MonoExceptionClause__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<MonoExceptionClause__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(MonoExceptionClause__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<MonoExceptionClause__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(MonoExceptionClause__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoExceptionClause__bindgen_ty_1>())).filter_offset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause__bindgen_ty_1),
            "::",
            stringify!(filter_offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoExceptionClause__bindgen_ty_1>())).catch_class as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause__bindgen_ty_1),
            "::",
            stringify!(catch_class)
        )
    );
}
#[test]
fn bindgen_test_layout_MonoExceptionClause() {
    assert_eq!(
        ::std::mem::size_of::<MonoExceptionClause>(),
        32usize,
        concat!("Size of: ", stringify!(MonoExceptionClause))
    );
    assert_eq!(
        ::std::mem::align_of::<MonoExceptionClause>(),
        8usize,
        concat!("Alignment of ", stringify!(MonoExceptionClause))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoExceptionClause>())).flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoExceptionClause>())).try_offset as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause),
            "::",
            stringify!(try_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoExceptionClause>())).try_len as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause),
            "::",
            stringify!(try_len)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MonoExceptionClause>())).handler_offset as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause),
            "::",
            stringify!(handler_offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoExceptionClause>())).handler_len as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause),
            "::",
            stringify!(handler_len)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MonoExceptionClause>())).data as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(MonoExceptionClause),
            "::",
            stringify!(data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoType {
    _unused: [u8; 0],
}
pub type MonoType = _MonoType;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoGenericInst {
    _unused: [u8; 0],
}
pub type MonoGenericInst = _MonoGenericInst;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoGenericClass {
    _unused: [u8; 0],
}
pub type MonoGenericClass = _MonoGenericClass;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoGenericContext {
    _unused: [u8; 0],
}
pub type MonoGenericContext = _MonoGenericContext;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoGenericContainer {
    _unused: [u8; 0],
}
pub type MonoGenericContainer = _MonoGenericContainer;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoGenericParam {
    _unused: [u8; 0],
}
pub type MonoGenericParam = _MonoGenericParam;
pub type MonoArrayType = _MonoArrayType;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoMethodSignature {
    _unused: [u8; 0],
}
pub type MonoMethodSignature = _MonoMethodSignature;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct invalid_name {
    _unused: [u8; 0],
}
pub type MonoGenericMethod = invalid_name;
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct MonoCustomMod {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout_MonoCustomMod() {
    assert_eq!(
        ::std::mem::size_of::<MonoCustomMod>(),
        4usize,
        concat!("Size of: ", stringify!(MonoCustomMod))
    );
    assert_eq!(
        ::std::mem::align_of::<MonoCustomMod>(),
        4usize,
        concat!("Alignment of ", stringify!(MonoCustomMod))
    );
}
impl MonoCustomMod {
    #[inline]
    pub fn required(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_required(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn token(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_token(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        required: ::std::os::raw::c_uint,
        token: ::std::os::raw::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let required: u32 = unsafe { ::std::mem::transmute(required) };
            required as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let token: u32 = unsafe { ::std::mem::transmute(token) };
            token as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoCustomModContainer {
    pub count: u8,
    pub image: *mut MonoImage,
    pub modifiers: [MonoCustomMod; 1usize],
}
#[test]
fn bindgen_test_layout__MonoCustomModContainer() {
    assert_eq!(
        ::std::mem::size_of::<_MonoCustomModContainer>(),
        24usize,
        concat!("Size of: ", stringify!(_MonoCustomModContainer))
    );
    assert_eq!(
        ::std::mem::align_of::<_MonoCustomModContainer>(),
        8usize,
        concat!("Alignment of ", stringify!(_MonoCustomModContainer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoCustomModContainer>())).count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoCustomModContainer),
            "::",
            stringify!(count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoCustomModContainer>())).image as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoCustomModContainer),
            "::",
            stringify!(image)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MonoCustomModContainer>())).modifiers as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoCustomModContainer),
            "::",
            stringify!(modifiers)
        )
    );
}
pub type MonoCustomModContainer = _MonoCustomModContainer;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoArrayType {
    pub eklass: *mut MonoClass,
    pub rank: u8,
    pub numsizes: u8,
    pub numlobounds: u8,
    pub sizes: *mut ::std::os::raw::c_int,
    pub lobounds: *mut ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__MonoArrayType() {
    assert_eq!(
        ::std::mem::size_of::<_MonoArrayType>(),
        32usize,
        concat!("Size of: ", stringify!(_MonoArrayType))
    );
    assert_eq!(
        ::std::mem::align_of::<_MonoArrayType>(),
        8usize,
        concat!("Alignment of ", stringify!(_MonoArrayType))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoArrayType>())).eklass as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoArrayType),
            "::",
            stringify!(eklass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoArrayType>())).rank as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoArrayType),
            "::",
            stringify!(rank)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoArrayType>())).numsizes as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoArrayType),
            "::",
            stringify!(numsizes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoArrayType>())).numlobounds as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoArrayType),
            "::",
            stringify!(numlobounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoArrayType>())).sizes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoArrayType),
            "::",
            stringify!(sizes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoArrayType>())).lobounds as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoArrayType),
            "::",
            stringify!(lobounds)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoMethodHeader {
    _unused: [u8; 0],
}
pub type MonoMethodHeader = _MonoMethodHeader;
pub const MonoParseTypeMode_MONO_PARSE_TYPE: MonoParseTypeMode = 0;
pub const MonoParseTypeMode_MONO_PARSE_MOD_TYPE: MonoParseTypeMode = 1;
pub const MonoParseTypeMode_MONO_PARSE_LOCAL: MonoParseTypeMode = 2;
pub const MonoParseTypeMode_MONO_PARSE_PARAM: MonoParseTypeMode = 3;
pub const MonoParseTypeMode_MONO_PARSE_RET: MonoParseTypeMode = 4;
pub const MonoParseTypeMode_MONO_PARSE_FIELD: MonoParseTypeMode = 5;
pub type MonoParseTypeMode = ::std::os::raw::c_int;
extern "C" {
    pub fn mono_type_is_byref(type_: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_type_get_type(type_: *mut MonoType) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_type_get_signature(type_: *mut MonoType) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_type_get_class(type_: *mut MonoType) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_type_get_array_type(type_: *mut MonoType) -> *mut MonoArrayType;
}
extern "C" {
    pub fn mono_type_get_ptr_type(type_: *mut MonoType) -> *mut MonoType;
}
extern "C" {
    pub fn mono_type_get_modifiers(
        type_: *mut MonoType,
        is_required: *mut mono_bool,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_type_is_struct(type_: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_type_is_void(type_: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_type_is_pointer(type_: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_type_is_reference(type_: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_type_is_generic_parameter(type_: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_signature_get_return_type(sig: *mut MonoMethodSignature) -> *mut MonoType;
}
extern "C" {
    pub fn mono_signature_get_params(
        sig: *mut MonoMethodSignature,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoType;
}
extern "C" {
    pub fn mono_signature_get_param_count(sig: *mut MonoMethodSignature) -> u32;
}
extern "C" {
    pub fn mono_signature_get_call_conv(sig: *mut MonoMethodSignature) -> u32;
}
extern "C" {
    pub fn mono_signature_vararg_start(sig: *mut MonoMethodSignature) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_signature_is_instance(sig: *mut MonoMethodSignature) -> mono_bool;
}
extern "C" {
    pub fn mono_signature_explicit_this(sig: *mut MonoMethodSignature) -> mono_bool;
}
extern "C" {
    pub fn mono_signature_param_is_out(
        sig: *mut MonoMethodSignature,
        param_num: ::std::os::raw::c_int,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_metadata_parse_typedef_or_ref(
        m: *mut MonoImage,
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_parse_custom_mod(
        m: *mut MonoImage,
        dest: *mut MonoCustomMod,
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_metadata_parse_array(
        m: *mut MonoImage,
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> *mut MonoArrayType;
}
extern "C" {
    pub fn mono_metadata_free_array(array: *mut MonoArrayType);
}
extern "C" {
    pub fn mono_metadata_parse_type(
        m: *mut MonoImage,
        mode: MonoParseTypeMode,
        opt_attrs: ::std::os::raw::c_short,
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> *mut MonoType;
}
extern "C" {
    pub fn mono_metadata_parse_param(
        m: *mut MonoImage,
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> *mut MonoType;
}
extern "C" {
    pub fn mono_metadata_parse_field_type(
        m: *mut MonoImage,
        field_flags: ::std::os::raw::c_short,
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> *mut MonoType;
}
extern "C" {
    pub fn mono_type_create_from_typespec(image: *mut MonoImage, type_spec: u32) -> *mut MonoType;
}
extern "C" {
    pub fn mono_metadata_free_type(type_: *mut MonoType);
}
extern "C" {
    pub fn mono_type_size(
        type_: *mut MonoType,
        alignment: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_type_stack_size(
        type_: *mut MonoType,
        alignment: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_type_generic_inst_is_valuetype(type_: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_metadata_generic_class_is_valuetype(gclass: *mut MonoGenericClass) -> mono_bool;
}
extern "C" {
    pub fn mono_metadata_type_hash(t1: *mut MonoType) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn mono_metadata_type_equal(t1: *mut MonoType, t2: *mut MonoType) -> mono_bool;
}
extern "C" {
    pub fn mono_metadata_signature_alloc(
        image: *mut MonoImage,
        nparams: u32,
    ) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_metadata_signature_dup(sig: *mut MonoMethodSignature) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_metadata_parse_signature(
        image: *mut MonoImage,
        token: u32,
    ) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_metadata_parse_method_signature(
        m: *mut MonoImage,
        def: ::std::os::raw::c_int,
        ptr: *const ::std::os::raw::c_char,
        rptr: *mut *const ::std::os::raw::c_char,
    ) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_metadata_free_method_signature(method: *mut MonoMethodSignature);
}
extern "C" {
    pub fn mono_metadata_signature_equal(
        sig1: *mut MonoMethodSignature,
        sig2: *mut MonoMethodSignature,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_signature_hash(sig: *mut MonoMethodSignature) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn mono_metadata_parse_mh(
        m: *mut MonoImage,
        ptr: *const ::std::os::raw::c_char,
    ) -> *mut MonoMethodHeader;
}
extern "C" {
    pub fn mono_metadata_free_mh(mh: *mut MonoMethodHeader);
}
extern "C" {
    pub fn mono_method_header_get_code(
        header: *mut MonoMethodHeader,
        code_size: *mut u32,
        max_stack: *mut u32,
    ) -> *const ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn mono_method_header_get_locals(
        header: *mut MonoMethodHeader,
        num_locals: *mut u32,
        init_locals: *mut mono_bool,
    ) -> *mut *mut MonoType;
}
extern "C" {
    pub fn mono_method_header_get_num_clauses(
        header: *mut MonoMethodHeader,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_method_header_get_clauses(
        header: *mut MonoMethodHeader,
        method: *mut MonoMethod,
        iter: *mut *mut ::std::os::raw::c_void,
        clause: *mut MonoExceptionClause,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_type_to_unmanaged(
        type_: *mut MonoType,
        mspec: *mut MonoMarshalSpec,
        as_field: mono_bool,
        unicode: mono_bool,
        conv: *mut MonoMarshalConv,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_token_from_dor(dor_index: u32) -> u32;
}
extern "C" {
    pub fn mono_guid_to_string(guid: *const u8) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_guid_to_string_minimal(guid: *const u8) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_metadata_declsec_from_index(meta: *mut MonoImage, idx: u32) -> u32;
}
extern "C" {
    pub fn mono_metadata_translate_token_index(
        image: *mut MonoImage,
        table: ::std::os::raw::c_int,
        idx: u32,
    ) -> u32;
}
extern "C" {
    pub fn mono_metadata_decode_table_row(
        image: *mut MonoImage,
        table: ::std::os::raw::c_int,
        idx: ::std::os::raw::c_int,
        res: *mut u32,
        res_size: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mono_metadata_decode_table_row_col(
        image: *mut MonoImage,
        table: ::std::os::raw::c_int,
        idx: ::std::os::raw::c_int,
        col: ::std::os::raw::c_uint,
    ) -> u32;
}
pub type MonoStackWalk = ::std::option::Option<
    unsafe extern "C" fn(
        method: *mut MonoMethod,
        native_offset: i32,
        il_offset: i32,
        managed: mono_bool,
        data: *mut ::std::os::raw::c_void,
    ) -> mono_bool,
>;
extern "C" {
    pub fn mono_get_method(
        image: *mut MonoImage,
        token: u32,
        klass: *mut MonoClass,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_get_method_full(
        image: *mut MonoImage,
        token: u32,
        klass: *mut MonoClass,
        context: *mut MonoGenericContext,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_get_method_constrained(
        image: *mut MonoImage,
        token: u32,
        constrained_class: *mut MonoClass,
        context: *mut MonoGenericContext,
        cil_method: *mut *mut MonoMethod,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_free_method(method: *mut MonoMethod);
}
extern "C" {
    pub fn mono_method_get_signature_full(
        method: *mut MonoMethod,
        image: *mut MonoImage,
        token: u32,
        context: *mut MonoGenericContext,
    ) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_method_get_signature(
        method: *mut MonoMethod,
        image: *mut MonoImage,
        token: u32,
    ) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_method_signature(method: *mut MonoMethod) -> *mut MonoMethodSignature;
}
extern "C" {
    pub fn mono_method_get_header(method: *mut MonoMethod) -> *mut MonoMethodHeader;
}
extern "C" {
    pub fn mono_method_get_name(method: *mut MonoMethod) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_method_get_class(method: *mut MonoMethod) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_method_get_token(method: *mut MonoMethod) -> u32;
}
extern "C" {
    pub fn mono_method_get_flags(method: *mut MonoMethod, iflags: *mut u32) -> u32;
}
extern "C" {
    pub fn mono_method_get_index(method: *mut MonoMethod) -> u32;
}
extern "C" {
    pub fn mono_add_internal_call(
        name: *const ::std::os::raw::c_char,
        method: *const ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_dangerous_add_raw_internal_call(
        name: *const ::std::os::raw::c_char,
        method: *const ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_lookup_internal_call(method: *mut MonoMethod) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_lookup_icall_symbol(m: *mut MonoMethod) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_dllmap_insert(
        assembly: *mut MonoImage,
        dll: *const ::std::os::raw::c_char,
        func: *const ::std::os::raw::c_char,
        tdll: *const ::std::os::raw::c_char,
        tfunc: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn mono_lookup_pinvoke_call(
        method: *mut MonoMethod,
        exc_class: *mut *const ::std::os::raw::c_char,
        exc_arg: *mut *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_method_get_param_names(
        method: *mut MonoMethod,
        names: *mut *const ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn mono_method_get_param_token(method: *mut MonoMethod, idx: ::std::os::raw::c_int) -> u32;
}
extern "C" {
    pub fn mono_method_get_marshal_info(method: *mut MonoMethod, mspecs: *mut *mut MonoMarshalSpec);
}
extern "C" {
    pub fn mono_method_has_marshal_info(method: *mut MonoMethod) -> mono_bool;
}
extern "C" {
    pub fn mono_method_get_last_managed() -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_stack_walk(func: MonoStackWalk, user_data: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn mono_stack_walk_no_il(func: MonoStackWalk, user_data: *mut ::std::os::raw::c_void);
}
pub type MonoStackWalkAsyncSafe = ::std::option::Option<
    unsafe extern "C" fn(
        method: *mut MonoMethod,
        domain: *mut MonoDomain,
        base_address: *mut ::std::os::raw::c_void,
        offset: ::std::os::raw::c_int,
        data: *mut ::std::os::raw::c_void,
    ) -> mono_bool,
>;
extern "C" {
    pub fn mono_stack_walk_async_safe(
        func: MonoStackWalkAsyncSafe,
        initial_sig_context: *mut ::std::os::raw::c_void,
        user_data: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_method_get_header_checked(
        method: *mut MonoMethod,
        error: *mut MonoError,
    ) -> *mut MonoMethodHeader;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MonoVTable {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoClassField {
    _unused: [u8; 0],
}
pub type MonoClassField = _MonoClassField;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoProperty {
    _unused: [u8; 0],
}
pub type MonoProperty = _MonoProperty;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoEvent {
    _unused: [u8; 0],
}
pub type MonoEvent = _MonoEvent;
pub const MonoTypeNameFormat_MONO_TYPE_NAME_FORMAT_IL: MonoTypeNameFormat = 0;
pub const MonoTypeNameFormat_MONO_TYPE_NAME_FORMAT_REFLECTION: MonoTypeNameFormat = 1;
pub const MonoTypeNameFormat_MONO_TYPE_NAME_FORMAT_FULL_NAME: MonoTypeNameFormat = 2;
pub const MonoTypeNameFormat_MONO_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED: MonoTypeNameFormat = 3;
pub type MonoTypeNameFormat = ::std::os::raw::c_int;
extern "C" {
    pub fn mono_class_get(image: *mut MonoImage, type_token: u32) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_get_full(
        image: *mut MonoImage,
        type_token: u32,
        context: *mut MonoGenericContext,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_init(klass: *mut MonoClass) -> mono_bool;
}
extern "C" {
    pub fn mono_class_vtable(domain: *mut MonoDomain, klass: *mut MonoClass) -> *mut MonoVTable;
}
extern "C" {
    pub fn mono_class_from_name(
        image: *mut MonoImage,
        name_space: *const ::std::os::raw::c_char,
        name: *const ::std::os::raw::c_char,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_from_name_case(
        image: *mut MonoImage,
        name_space: *const ::std::os::raw::c_char,
        name: *const ::std::os::raw::c_char,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_get_method_from_name_flags(
        klass: *mut MonoClass,
        name: *const ::std::os::raw::c_char,
        param_count: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_class_from_typeref(image: *mut MonoImage, type_token: u32) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_from_typeref_checked(
        image: *mut MonoImage,
        type_token: u32,
        error: *mut MonoError,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_from_generic_parameter(
        param: *mut MonoGenericParam,
        image: *mut MonoImage,
        is_mvar: mono_bool,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_inflate_generic_type(
        type_: *mut MonoType,
        context: *mut MonoGenericContext,
    ) -> *mut MonoType;
}
extern "C" {
    pub fn mono_class_inflate_generic_method(
        method: *mut MonoMethod,
        context: *mut MonoGenericContext,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_get_inflated_method(method: *mut MonoMethod) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_field_from_token(
        image: *mut MonoImage,
        token: u32,
        retklass: *mut *mut MonoClass,
        context: *mut MonoGenericContext,
    ) -> *mut MonoClassField;
}
extern "C" {
    pub fn mono_bounded_array_class_get(
        element_class: *mut MonoClass,
        rank: u32,
        bounded: mono_bool,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_array_class_get(element_class: *mut MonoClass, rank: u32) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_ptr_class_get(type_: *mut MonoType) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_get_field(klass: *mut MonoClass, field_token: u32) -> *mut MonoClassField;
}
extern "C" {
    pub fn mono_class_get_field_from_name(
        klass: *mut MonoClass,
        name: *const ::std::os::raw::c_char,
    ) -> *mut MonoClassField;
}
extern "C" {
    pub fn mono_class_get_field_token(field: *mut MonoClassField) -> u32;
}
extern "C" {
    pub fn mono_class_get_event_token(event: *mut MonoEvent) -> u32;
}
extern "C" {
    pub fn mono_class_get_property_from_name(
        klass: *mut MonoClass,
        name: *const ::std::os::raw::c_char,
    ) -> *mut MonoProperty;
}
extern "C" {
    pub fn mono_class_get_property_token(prop: *mut MonoProperty) -> u32;
}
extern "C" {
    pub fn mono_array_element_size(ac: *mut MonoClass) -> i32;
}
extern "C" {
    pub fn mono_class_instance_size(klass: *mut MonoClass) -> i32;
}
extern "C" {
    pub fn mono_class_array_element_size(klass: *mut MonoClass) -> i32;
}
extern "C" {
    pub fn mono_class_data_size(klass: *mut MonoClass) -> i32;
}
extern "C" {
    pub fn mono_class_value_size(klass: *mut MonoClass, align: *mut u32) -> i32;
}
extern "C" {
    pub fn mono_class_min_align(klass: *mut MonoClass) -> i32;
}
extern "C" {
    pub fn mono_class_from_mono_type(type_: *mut MonoType) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_is_subclass_of(
        klass: *mut MonoClass,
        klassc: *mut MonoClass,
        check_interfaces: mono_bool,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_class_is_assignable_from(
        klass: *mut MonoClass,
        oklass: *mut MonoClass,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_ldtoken(
        image: *mut MonoImage,
        token: u32,
        retclass: *mut *mut MonoClass,
        context: *mut MonoGenericContext,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_type_get_name_full(
        type_: *mut MonoType,
        format: MonoTypeNameFormat,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_type_get_name(type_: *mut MonoType) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_type_get_underlying_type(type_: *mut MonoType) -> *mut MonoType;
}
extern "C" {
    pub fn mono_class_get_image(klass: *mut MonoClass) -> *mut MonoImage;
}
extern "C" {
    pub fn mono_class_get_element_class(klass: *mut MonoClass) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_is_valuetype(klass: *mut MonoClass) -> mono_bool;
}
extern "C" {
    pub fn mono_class_is_enum(klass: *mut MonoClass) -> mono_bool;
}
extern "C" {
    pub fn mono_class_enum_basetype(klass: *mut MonoClass) -> *mut MonoType;
}
extern "C" {
    pub fn mono_class_get_parent(klass: *mut MonoClass) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_get_nesting_type(klass: *mut MonoClass) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_get_rank(klass: *mut MonoClass) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_class_get_flags(klass: *mut MonoClass) -> u32;
}
extern "C" {
    pub fn mono_class_get_name(klass: *mut MonoClass) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_class_get_namespace(klass: *mut MonoClass) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_class_get_type(klass: *mut MonoClass) -> *mut MonoType;
}
extern "C" {
    pub fn mono_class_get_type_token(klass: *mut MonoClass) -> u32;
}
extern "C" {
    pub fn mono_class_get_byref_type(klass: *mut MonoClass) -> *mut MonoType;
}
extern "C" {
    pub fn mono_class_num_fields(klass: *mut MonoClass) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_class_num_methods(klass: *mut MonoClass) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_class_num_properties(klass: *mut MonoClass) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_class_num_events(klass: *mut MonoClass) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_class_get_fields(
        klass: *mut MonoClass,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoClassField;
}
extern "C" {
    pub fn mono_class_get_methods(
        klass: *mut MonoClass,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_class_get_properties(
        klass: *mut MonoClass,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoProperty;
}
extern "C" {
    pub fn mono_class_get_events(
        klass: *mut MonoClass,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoEvent;
}
extern "C" {
    pub fn mono_class_get_interfaces(
        klass: *mut MonoClass,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_get_nested_types(
        klass: *mut MonoClass,
        iter: *mut *mut ::std::os::raw::c_void,
    ) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_class_is_delegate(klass: *mut MonoClass) -> mono_bool;
}
extern "C" {
    pub fn mono_class_implements_interface(
        klass: *mut MonoClass,
        iface: *mut MonoClass,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_field_get_name(field: *mut MonoClassField) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_field_get_type(field: *mut MonoClassField) -> *mut MonoType;
}
extern "C" {
    pub fn mono_field_get_parent(field: *mut MonoClassField) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_field_get_flags(field: *mut MonoClassField) -> u32;
}
extern "C" {
    pub fn mono_field_get_offset(field: *mut MonoClassField) -> u32;
}
extern "C" {
    pub fn mono_field_get_data(field: *mut MonoClassField) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_property_get_name(prop: *mut MonoProperty) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_property_get_set_method(prop: *mut MonoProperty) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_property_get_get_method(prop: *mut MonoProperty) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_property_get_parent(prop: *mut MonoProperty) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_property_get_flags(prop: *mut MonoProperty) -> u32;
}
extern "C" {
    pub fn mono_event_get_name(event: *mut MonoEvent) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_event_get_add_method(event: *mut MonoEvent) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_event_get_remove_method(event: *mut MonoEvent) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_event_get_raise_method(event: *mut MonoEvent) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_event_get_parent(event: *mut MonoEvent) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_event_get_flags(event: *mut MonoEvent) -> u32;
}
extern "C" {
    pub fn mono_class_get_method_from_name(
        klass: *mut MonoClass,
        name: *const ::std::os::raw::c_char,
        param_count: ::std::os::raw::c_int,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_class_name_from_token(
        image: *mut MonoImage,
        type_token: u32,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_method_can_access_field(
        method: *mut MonoMethod,
        field: *mut MonoClassField,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_method_can_access_method(
        method: *mut MonoMethod,
        called: *mut MonoMethod,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_class_is_nullable(klass: *mut MonoClass) -> mono_bool;
}
extern "C" {
    pub fn mono_class_get_nullable_param(klass: *mut MonoClass) -> *mut MonoClass;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoString {
    _unused: [u8; 0],
}
pub type MonoString = _MonoString;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoArray {
    _unused: [u8; 0],
}
pub type MonoArray = _MonoArray;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionMethod {
    _unused: [u8; 0],
}
pub type MonoReflectionMethod = _MonoReflectionMethod;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionModule {
    _unused: [u8; 0],
}
pub type MonoReflectionModule = _MonoReflectionModule;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionField {
    _unused: [u8; 0],
}
pub type MonoReflectionField = _MonoReflectionField;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionProperty {
    _unused: [u8; 0],
}
pub type MonoReflectionProperty = _MonoReflectionProperty;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionEvent {
    _unused: [u8; 0],
}
pub type MonoReflectionEvent = _MonoReflectionEvent;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionType {
    _unused: [u8; 0],
}
pub type MonoReflectionType = _MonoReflectionType;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoDelegate {
    _unused: [u8; 0],
}
pub type MonoDelegate = _MonoDelegate;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoThreadsSync {
    _unused: [u8; 0],
}
pub type MonoThreadsSync = _MonoThreadsSync;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoThread {
    _unused: [u8; 0],
}
pub type MonoThread = _MonoThread;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoDynamicAssembly {
    _unused: [u8; 0],
}
pub type MonoDynamicAssembly = _MonoDynamicAssembly;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoDynamicImage {
    _unused: [u8; 0],
}
pub type MonoDynamicImage = _MonoDynamicImage;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReflectionMethodBody {
    _unused: [u8; 0],
}
pub type MonoReflectionMethodBody = _MonoReflectionMethodBody;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoAppContext {
    _unused: [u8; 0],
}
pub type MonoAppContext = _MonoAppContext;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoObject {
    pub vtable: *mut MonoVTable,
    pub synchronisation: *mut MonoThreadsSync,
}
#[test]
fn bindgen_test_layout__MonoObject() {
    assert_eq!(
        ::std::mem::size_of::<_MonoObject>(),
        16usize,
        concat!("Size of: ", stringify!(_MonoObject))
    );
    assert_eq!(
        ::std::mem::align_of::<_MonoObject>(),
        8usize,
        concat!("Alignment of ", stringify!(_MonoObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoObject>())).vtable as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoObject),
            "::",
            stringify!(vtable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MonoObject>())).synchronisation as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MonoObject),
            "::",
            stringify!(synchronisation)
        )
    );
}
pub type MonoInvokeFunc = ::std::option::Option<
    unsafe extern "C" fn(
        method: *mut MonoMethod,
        obj: *mut ::std::os::raw::c_void,
        params: *mut *mut ::std::os::raw::c_void,
        exc: *mut *mut MonoObject,
        error: *mut MonoError,
    ) -> *mut MonoObject,
>;
pub type MonoCompileFunc = ::std::option::Option<
    unsafe extern "C" fn(method: *mut MonoMethod) -> *mut ::std::os::raw::c_void,
>;
pub type MonoMainThreadFunc =
    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub fn mono_string_chars(s: *mut MonoString) -> *mut mono_unichar2;
}
extern "C" {
    pub fn mono_string_length(s: *mut MonoString) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_object_new(domain: *mut MonoDomain, klass: *mut MonoClass) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_object_new_specific(vtable: *mut MonoVTable) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_object_new_fast(vtable: *mut MonoVTable) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_object_new_alloc_specific(vtable: *mut MonoVTable) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_object_new_from_token(
        domain: *mut MonoDomain,
        image: *mut MonoImage,
        token: u32,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_array_new(
        domain: *mut MonoDomain,
        eclass: *mut MonoClass,
        n: usize,
    ) -> *mut MonoArray;
}
extern "C" {
    pub fn mono_array_new_full(
        domain: *mut MonoDomain,
        array_class: *mut MonoClass,
        lengths: *mut usize,
        lower_bounds: *mut isize,
    ) -> *mut MonoArray;
}
extern "C" {
    pub fn mono_array_new_specific(vtable: *mut MonoVTable, n: usize) -> *mut MonoArray;
}
extern "C" {
    pub fn mono_array_clone(array: *mut MonoArray) -> *mut MonoArray;
}
extern "C" {
    pub fn mono_array_addr_with_size(
        array: *mut MonoArray,
        size: ::std::os::raw::c_int,
        idx: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_array_length(array: *mut MonoArray) -> usize;
}
extern "C" {
    pub fn mono_string_empty(domain: *mut MonoDomain) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_empty_wrapper() -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_new_utf16(
        domain: *mut MonoDomain,
        text: *const mono_unichar2,
        len: i32,
    ) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_new_size(domain: *mut MonoDomain, len: i32) -> *mut MonoString;
}
extern "C" {
    pub fn mono_ldstr(
        domain: *mut MonoDomain,
        image: *mut MonoImage,
        str_index: u32,
    ) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_is_interned(str_: *mut MonoString) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_intern(str_: *mut MonoString) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_new(
        domain: *mut MonoDomain,
        text: *const ::std::os::raw::c_char,
    ) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_new_wrapper(text: *const ::std::os::raw::c_char) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_new_len(
        domain: *mut MonoDomain,
        text: *const ::std::os::raw::c_char,
        length: ::std::os::raw::c_uint,
    ) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_new_utf32(
        domain: *mut MonoDomain,
        text: *const mono_unichar4,
        len: i32,
    ) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_to_utf8(string_obj: *mut MonoString) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_string_to_utf8_checked(
        string_obj: *mut MonoString,
        error: *mut MonoError,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mono_string_to_utf16(string_obj: *mut MonoString) -> *mut mono_unichar2;
}
extern "C" {
    pub fn mono_string_to_utf32(string_obj: *mut MonoString) -> *mut mono_unichar4;
}
extern "C" {
    pub fn mono_string_from_utf16(data: *mut mono_unichar2) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_from_utf32(data: *mut mono_unichar4) -> *mut MonoString;
}
extern "C" {
    pub fn mono_string_equal(s1: *mut MonoString, s2: *mut MonoString) -> mono_bool;
}
extern "C" {
    pub fn mono_string_hash(s: *mut MonoString) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn mono_object_hash(obj: *mut MonoObject) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_object_to_string(
        obj: *mut MonoObject,
        exc: *mut *mut MonoObject,
    ) -> *mut MonoString;
}
extern "C" {
    pub fn mono_value_box(
        domain: *mut MonoDomain,
        klass: *mut MonoClass,
        val: *mut ::std::os::raw::c_void,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_value_copy(
        dest: *mut ::std::os::raw::c_void,
        src: *mut ::std::os::raw::c_void,
        klass: *mut MonoClass,
    );
}
extern "C" {
    pub fn mono_value_copy_array(
        dest: *mut MonoArray,
        dest_idx: ::std::os::raw::c_int,
        src: *mut ::std::os::raw::c_void,
        count: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mono_object_get_vtable(obj: *mut MonoObject) -> *mut MonoVTable;
}
extern "C" {
    pub fn mono_object_get_domain(obj: *mut MonoObject) -> *mut MonoDomain;
}
extern "C" {
    pub fn mono_object_get_class(obj: *mut MonoObject) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_object_unbox(obj: *mut MonoObject) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_object_clone(obj: *mut MonoObject) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_object_isinst(obj: *mut MonoObject, klass: *mut MonoClass) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_object_isinst_mbyref(
        obj: *mut MonoObject,
        klass: *mut MonoClass,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_object_castclass_mbyref(
        obj: *mut MonoObject,
        klass: *mut MonoClass,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_monitor_try_enter(obj: *mut MonoObject, ms: u32) -> mono_bool;
}
extern "C" {
    pub fn mono_monitor_enter(obj: *mut MonoObject) -> mono_bool;
}
extern "C" {
    pub fn mono_monitor_enter_v4(obj: *mut MonoObject, lock_taken: *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn mono_object_get_size(o: *mut MonoObject) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn mono_monitor_exit(obj: *mut MonoObject);
}
extern "C" {
    pub fn mono_raise_exception(ex: *mut MonoException);
}
extern "C" {
    pub fn mono_runtime_set_pending_exception(
        exc: *mut MonoException,
        overwrite: mono_bool,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_reraise_exception(ex: *mut MonoException);
}
extern "C" {
    pub fn mono_runtime_object_init(this_obj: *mut MonoObject);
}
extern "C" {
    pub fn mono_runtime_class_init(vtable: *mut MonoVTable);
}
extern "C" {
    pub fn mono_vtable_domain(vtable: *mut MonoVTable) -> *mut MonoDomain;
}
extern "C" {
    pub fn mono_vtable_class(vtable: *mut MonoVTable) -> *mut MonoClass;
}
extern "C" {
    pub fn mono_object_get_virtual_method(
        obj: *mut MonoObject,
        method: *mut MonoMethod,
    ) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_runtime_invoke(
        method: *mut MonoMethod,
        obj: *mut ::std::os::raw::c_void,
        params: *mut *mut ::std::os::raw::c_void,
        exc: *mut *mut MonoObject,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_get_delegate_invoke(klass: *mut MonoClass) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_get_delegate_begin_invoke(klass: *mut MonoClass) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_get_delegate_end_invoke(klass: *mut MonoClass) -> *mut MonoMethod;
}
extern "C" {
    pub fn mono_runtime_delegate_invoke(
        delegate: *mut MonoObject,
        params: *mut *mut ::std::os::raw::c_void,
        exc: *mut *mut MonoObject,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_runtime_invoke_array(
        method: *mut MonoMethod,
        obj: *mut ::std::os::raw::c_void,
        params: *mut MonoArray,
        exc: *mut *mut MonoObject,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_method_get_unmanaged_thunk(method: *mut MonoMethod) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_runtime_get_main_args() -> *mut MonoArray;
}
extern "C" {
    pub fn mono_runtime_exec_managed_code(
        domain: *mut MonoDomain,
        main_func: MonoMainThreadFunc,
        main_args: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_runtime_run_main(
        method: *mut MonoMethod,
        argc: ::std::os::raw::c_int,
        argv: *mut *mut ::std::os::raw::c_char,
        exc: *mut *mut MonoObject,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_runtime_exec_main(
        method: *mut MonoMethod,
        args: *mut MonoArray,
        exc: *mut *mut MonoObject,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_runtime_set_main_args(
        argc: ::std::os::raw::c_int,
        argv: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_load_remote_field(
        this_obj: *mut MonoObject,
        klass: *mut MonoClass,
        field: *mut MonoClassField,
        res: *mut *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_load_remote_field_new(
        this_obj: *mut MonoObject,
        klass: *mut MonoClass,
        field: *mut MonoClassField,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_store_remote_field(
        this_obj: *mut MonoObject,
        klass: *mut MonoClass,
        field: *mut MonoClassField,
        val: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_store_remote_field_new(
        this_obj: *mut MonoObject,
        klass: *mut MonoClass,
        field: *mut MonoClassField,
        arg: *mut MonoObject,
    );
}
extern "C" {
    pub fn mono_unhandled_exception(exc: *mut MonoObject);
}
extern "C" {
    pub fn mono_print_unhandled_exception(exc: *mut MonoObject);
}
extern "C" {
    pub fn mono_compile_method(method: *mut MonoMethod) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn mono_field_set_value(
        obj: *mut MonoObject,
        field: *mut MonoClassField,
        value: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_field_static_set_value(
        vt: *mut MonoVTable,
        field: *mut MonoClassField,
        value: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_field_get_value(
        obj: *mut MonoObject,
        field: *mut MonoClassField,
        value: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_field_static_get_value(
        vt: *mut MonoVTable,
        field: *mut MonoClassField,
        value: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn mono_field_get_value_object(
        domain: *mut MonoDomain,
        field: *mut MonoClassField,
        obj: *mut MonoObject,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_property_set_value(
        prop: *mut MonoProperty,
        obj: *mut ::std::os::raw::c_void,
        params: *mut *mut ::std::os::raw::c_void,
        exc: *mut *mut MonoObject,
    );
}
extern "C" {
    pub fn mono_property_get_value(
        prop: *mut MonoProperty,
        obj: *mut ::std::os::raw::c_void,
        params: *mut *mut ::std::os::raw::c_void,
        exc: *mut *mut MonoObject,
    ) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_gchandle_new(obj: *mut MonoObject, pinned: mono_bool) -> u32;
}
extern "C" {
    pub fn mono_gchandle_new_weakref(obj: *mut MonoObject, track_resurrection: mono_bool) -> u32;
}
extern "C" {
    pub fn mono_gchandle_get_target(gchandle: u32) -> *mut MonoObject;
}
extern "C" {
    pub fn mono_gchandle_free(gchandle: u32);
}
pub type mono_reference_queue_callback =
    ::std::option::Option<unsafe extern "C" fn(user_data: *mut ::std::os::raw::c_void)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MonoReferenceQueue {
    _unused: [u8; 0],
}
pub type MonoReferenceQueue = _MonoReferenceQueue;
extern "C" {
    pub fn mono_gc_reference_queue_new(
        callback: mono_reference_queue_callback,
    ) -> *mut MonoReferenceQueue;
}
extern "C" {
    pub fn mono_gc_reference_queue_free(queue: *mut MonoReferenceQueue);
}
extern "C" {
    pub fn mono_gc_reference_queue_add(
        queue: *mut MonoReferenceQueue,
        obj: *mut MonoObject,
        user_data: *mut ::std::os::raw::c_void,
    ) -> mono_bool;
}
extern "C" {
    pub fn mono_gc_wbarrier_set_field(
        obj: *mut MonoObject,
        field_ptr: *mut ::std::os::raw::c_void,
        value: *mut MonoObject,
    );
}
extern "C" {
    pub fn mono_gc_wbarrier_set_arrayref(
        arr: *mut MonoArray,
        slot_ptr: *mut ::std::os::raw::c_void,
        value: *mut MonoObject,
    );
}
extern "C" {
    pub fn mono_gc_wbarrier_arrayref_copy(
        dest_ptr: *mut ::std::os::raw::c_void,
        src_ptr: *mut ::std::os::raw::c_void,
        count: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mono_gc_wbarrier_generic_store(ptr: *mut ::std::os::raw::c_void, value: *mut MonoObject);
}
extern "C" {
    pub fn mono_gc_wbarrier_generic_store_atomic(
        ptr: *mut ::std::os::raw::c_void,
        value: *mut MonoObject,
    );
}
extern "C" {
    pub fn mono_gc_wbarrier_generic_nostore(ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn mono_gc_wbarrier_value_copy(
        dest: *mut ::std::os::raw::c_void,
        src: *mut ::std::os::raw::c_void,
        count: ::std::os::raw::c_int,
        klass: *mut MonoClass,
    );
}
extern "C" {
    pub fn mono_gc_wbarrier_object_copy(obj: *mut MonoObject, src: *mut MonoObject);
}
pub type MonoGCReferences = ::std::option::Option<
    unsafe extern "C" fn(
        obj: *mut MonoObject,
        klass: *mut MonoClass,
        size: usize,
        num: usize,
        refs: *mut *mut MonoObject,
        offsets: *mut usize,
        data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
#[doc = " Roots external to Mono. Embedders may only use this value."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_EXTERNAL: MonoGCRootSource = 0;
#[doc = " Thread call stack."]
#[doc = ""]
#[doc = " The \\c key parameter is a thread ID as a \\c uintptr_t."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_STACK: MonoGCRootSource = 1;
#[doc = " Roots in the finalizer queue. This is a pseudo-root."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_FINALIZER_QUEUE: MonoGCRootSource = 2;
#[doc = " Managed \\c static variables."]
#[doc = ""]
#[doc = " The \\c key parameter is a \\c MonoVTable pointer."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_STATIC: MonoGCRootSource = 3;
#[doc = " Managed \\c static variables with \\c ThreadStaticAttribute."]
#[doc = ""]
#[doc = " The \\c key parameter is a thread ID as a \\c uintptr_t."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_THREAD_STATIC: MonoGCRootSource = 4;
#[doc = " Managed \\c static variables with \\c ContextStaticAttribute."]
#[doc = ""]
#[doc = " The \\c key parameter is a \\c MonoAppContext pointer."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_CONTEXT_STATIC: MonoGCRootSource = 5;
#[doc = " \\c GCHandle structures."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_GC_HANDLE: MonoGCRootSource = 6;
#[doc = " Roots in the just-in-time compiler."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_JIT: MonoGCRootSource = 7;
#[doc = " Roots in the threading subsystem."]
#[doc = ""]
#[doc = " The \\c key parameter, if not \\c NULL, is a thread ID as a \\c uintptr_t."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_THREADING: MonoGCRootSource = 8;
#[doc = " Roots in application domains."]
#[doc = ""]
#[doc = " The \\c key parameter, if not \\c NULL, is a \\c MonoDomain pointer."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_DOMAIN: MonoGCRootSource = 9;
#[doc = " Roots in reflection code."]
#[doc = ""]
#[doc = " The \\c key parameter, if not \\c NULL, is a \\c MonoVTable pointer."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_REFLECTION: MonoGCRootSource = 10;
#[doc = " Roots from P/Invoke or other marshaling infrastructure."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_MARSHAL: MonoGCRootSource = 11;
#[doc = " Roots in the thread pool data structures."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_THREAD_POOL: MonoGCRootSource = 12;
#[doc = " Roots in the debugger agent."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_DEBUGGER: MonoGCRootSource = 13;
#[doc = " Roots in the runtime handle stack. This is a pseudo-root."]
#[doc = ""]
#[doc = " The \\c key parameter is a thread ID as a \\c uintptr_t."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_HANDLE: MonoGCRootSource = 14;
#[doc = " Roots in the ephemeron arrays. This is a pseudo-root."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_EPHEMERON: MonoGCRootSource = 15;
#[doc = " Roots in the toggleref arrays. This is a pseudo-root."]
pub const MonoGCRootSource_MONO_ROOT_SOURCE_TOGGLEREF: MonoGCRootSource = 16;
#[doc = " This enum is used by the profiler API when reporting root registration."]
pub type MonoGCRootSource = ::std::os::raw::c_int;
pub const MonoGCHandleType_MONO_GC_HANDLE_TYPE_MIN: MonoGCHandleType = 0;
pub const MonoGCHandleType_MONO_GC_HANDLE_WEAK: MonoGCHandleType = 0;
pub const MonoGCHandleType_MONO_GC_HANDLE_WEAK_TRACK_RESURRECTION: MonoGCHandleType = 1;
pub const MonoGCHandleType_MONO_GC_HANDLE_NORMAL: MonoGCHandleType = 2;
pub const MonoGCHandleType_MONO_GC_HANDLE_PINNED: MonoGCHandleType = 3;
pub const MonoGCHandleType_MONO_GC_HANDLE_TYPE_MAX: MonoGCHandleType = 4;
pub type MonoGCHandleType = ::std::os::raw::c_int;
extern "C" {
    pub fn mono_gc_collect(generation: ::std::os::raw::c_int);
}
extern "C" {
    pub fn mono_gc_max_generation() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_gc_get_generation(object: *mut MonoObject) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_gc_collection_count(generation: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_gc_get_used_size() -> i64;
}
extern "C" {
    pub fn mono_gc_get_heap_size() -> i64;
}
extern "C" {
    pub fn mono_gc_pending_finalizers() -> MonoBoolean;
}
extern "C" {
    pub fn mono_gc_finalize_notify();
}
extern "C" {
    pub fn mono_gc_invoke_finalizers() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mono_gc_walk_heap(
        flags: ::std::os::raw::c_int,
        callback: MonoGCReferences,
        data: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_data {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_multibyte_data {
    pub _address: u8,
}
pub type __builtin_va_list = *mut ::std::os::raw::c_char;
