/* Do not modify this file -- it is automatically generated! */

#include "debugtools.h"

#define DEBUG_CLASS_COUNT __DBCL_COUNT

#ifdef DEBUG_RUNTIME

const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };

int dbch_accel = 0;
int dbch_advapi = 1;
int dbch_animate = 2;
int dbch_aspi = 3;
int dbch_atom = 4;
int dbch_avifile = 5;
int dbch_bitblt = 6;
int dbch_bitmap = 7;
int dbch_caret = 8;
int dbch_cdaudio = 9;
int dbch_class = 10;
int dbch_clipboard = 11;
int dbch_clipping = 12;
int dbch_combo = 13;
int dbch_comboex = 14;
int dbch_comm = 15;
int dbch_commctrl = 16;
int dbch_commdlg = 17;
int dbch_console = 18;
int dbch_crtdll = 19;
int dbch_cursor = 20;
int dbch_datetime = 21;
int dbch_dc = 22;
int dbch_dde = 23;
int dbch_ddeml = 24;
int dbch_ddraw = 25;
int dbch_debug = 26;
int dbch_delayhlp = 27;
int dbch_dialog = 28;
int dbch_dinput = 29;
int dbch_dll = 30;
int dbch_dosfs = 31;
int dbch_dosmem = 32;
int dbch_dplay = 33;
int dbch_driver = 34;
int dbch_dsound = 35;
int dbch_edit = 36;
int dbch_elfdll = 37;
int dbch_enhmetafile = 38;
int dbch_event = 39;
int dbch_exec = 40;
int dbch_file = 41;
int dbch_fixup = 42;
int dbch_font = 43;
int dbch_gdi = 44;
int dbch_global = 45;
int dbch_graphics = 46;
int dbch_header = 47;
int dbch_heap = 48;
int dbch_hook = 49;
int dbch_hotkey = 50;
int dbch_icon = 51;
int dbch_imagehlp = 52;
int dbch_imagelist = 53;
int dbch_imm = 54;
int dbch_int = 55;
int dbch_int10 = 56;
int dbch_int16 = 57;
int dbch_int17 = 58;
int dbch_int19 = 59;
int dbch_int21 = 60;
int dbch_int31 = 61;
int dbch_io = 62;
int dbch_ipaddress = 63;
int dbch_key = 64;
int dbch_keyboard = 65;
int dbch_ldt = 66;
int dbch_listbox = 67;
int dbch_listview = 68;
int dbch_local = 69;
int dbch_mci = 70;
int dbch_mcianim = 71;
int dbch_mciavi = 72;
int dbch_mcimidi = 73;
int dbch_mciwave = 74;
int dbch_mdi = 75;
int dbch_menu = 76;
int dbch_message = 77;
int dbch_metafile = 78;
int dbch_midi = 79;
int dbch_mmaux = 80;
int dbch_mmio = 81;
int dbch_mmsys = 82;
int dbch_mmtime = 83;
int dbch_module = 84;
int dbch_monthcal = 85;
int dbch_mpr = 86;
int dbch_msacm = 87;
int dbch_msg = 88;
int dbch_msvideo = 89;
int dbch_nativefont = 90;
int dbch_nonclient = 91;
int dbch_ntdll = 92;
int dbch_ole = 93;
int dbch_pager = 94;
int dbch_palette = 95;
int dbch_pidl = 96;
int dbch_print = 97;
int dbch_process = 98;
int dbch_profile = 99;
int dbch_progress = 100;
int dbch_prop = 101;
int dbch_propsheet = 102;
int dbch_psapi = 103;
int dbch_psdrv = 104;
int dbch_ras = 105;
int dbch_rebar = 106;
int dbch_reg = 107;
int dbch_region = 108;
int dbch_relay = 109;
int dbch_resource = 110;
int dbch_scroll = 111;
int dbch_security = 112;
int dbch_segment = 113;
int dbch_seh = 114;
int dbch_selector = 115;
int dbch_sem = 116;
int dbch_sendmsg = 117;
int dbch_server = 118;
int dbch_shell = 119;
int dbch_shm = 120;
int dbch_snoop = 121;
int dbch_sound = 122;
int dbch_static = 123;
int dbch_statusbar = 124;
int dbch_storage = 125;
int dbch_stress = 126;
int dbch_string = 127;
int dbch_syscolor = 128;
int dbch_system = 129;
int dbch_tab = 130;
int dbch_tapi = 131;
int dbch_task = 132;
int dbch_text = 133;
int dbch_thread = 134;
int dbch_thunk = 135;
int dbch_timer = 136;
int dbch_toolbar = 137;
int dbch_toolhelp = 138;
int dbch_tooltips = 139;
int dbch_trackbar = 140;
int dbch_treeview = 141;
int dbch_ttydrv = 142;
int dbch_tweak = 143;
int dbch_updown = 144;
int dbch_ver = 145;
int dbch_virtual = 146;
int dbch_vxd = 147;
int dbch_wave = 148;
int dbch_win = 149;
int dbch_win16drv = 150;
int dbch_win32 = 151;
int dbch_wing = 152;
int dbch_winsock = 153;
int dbch_winspool = 154;
int dbch_wnet = 155;
int dbch_x11 = 156;
int dbch_x11drv = 157;

#define DEBUG_CHANNEL_COUNT 158

char __debug_msg_enabled[DEBUG_CHANNEL_COUNT][DEBUG_CLASS_COUNT] = {
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0}
};

const char * const debug_ch_name[DEBUG_CHANNEL_COUNT] = {
"accel",
"advapi",
"animate",
"aspi",
"atom",
"avifile",
"bitblt",
"bitmap",
"caret",
"cdaudio",
"class",
"clipboard",
"clipping",
"combo",
"comboex",
"comm",
"commctrl",
"commdlg",
"console",
"crtdll",
"cursor",
"datetime",
"dc",
"dde",
"ddeml",
"ddraw",
"debug",
"delayhlp",
"dialog",
"dinput",
"dll",
"dosfs",
"dosmem",
"dplay",
"driver",
"dsound",
"edit",
"elfdll",
"enhmetafile",
"event",
"exec",
"file",
"fixup",
"font",
"gdi",
"global",
"graphics",
"header",
"heap",
"hook",
"hotkey",
"icon",
"imagehlp",
"imagelist",
"imm",
"int",
"int10",
"int16",
"int17",
"int19",
"int21",
"int31",
"io",
"ipaddress",
"key",
"keyboard",
"ldt",
"listbox",
"listview",
"local",
"mci",
"mcianim",
"mciavi",
"mcimidi",
"mciwave",
"mdi",
"menu",
"message",
"metafile",
"midi",
"mmaux",
"mmio",
"mmsys",
"mmtime",
"module",
"monthcal",
"mpr",
"msacm",
"msg",
"msvideo",
"nativefont",
"nonclient",
"ntdll",
"ole",
"pager",
"palette",
"pidl",
"print",
"process",
"profile",
"progress",
"prop",
"propsheet",
"psapi",
"psdrv",
"ras",
"rebar",
"reg",
"region",
"relay",
"resource",
"scroll",
"security",
"segment",
"seh",
"selector",
"sem",
"sendmsg",
"server",
"shell",
"shm",
"snoop",
"sound",
"static",
"statusbar",
"storage",
"stress",
"string",
"syscolor",
"system",
"tab",
"tapi",
"task",
"text",
"thread",
"thunk",
"timer",
"toolbar",
"toolhelp",
"tooltips",
"trackbar",
"treeview",
"ttydrv",
"tweak",
"updown",
"ver",
"virtual",
"vxd",
"wave",
"win",
"win16drv",
"win32",
"wing",
"winsock",
"winspool",
"wnet",
"x11",
"x11drv"
};

#endif /*DEBUG_RUNTIME*/

/* end of automatically generated debug.h */
