Browse Source

update essence platform

nakst 4 years ago
parent
commit
c92860e142
5 changed files with 2818 additions and 2414 deletions
  1. 25 2411
      core/os/os_essence.odin
  2. 18 0
      core/runtime/procs_essence.odin
  3. 2772 0
      core/sys/es/api.odin
  4. 2 2
      examples/demo/demo.odin
  5. 1 1
      src/main.cpp

+ 25 - 2411
core/os/os_essence.odin

@@ -1,2438 +1,52 @@
-package os;
-Data :: struct { _private : [4]rawptr, }
-Generic :: rawptr;
-Element :: struct { _private : u8, };
-Object :: rawptr;
-LongDouble :: struct { value : [10]u8, };
-NodeType :: u64;
-Error :: int;
-Handle :: uint;
-Response :: i32;
-FileOffset :: u64;
-ListViewIndex :: i32;
-ThreadEntryFunction :: distinct #type proc (Generic);
-ComparisonCallbackFunction :: distinct #type proc (rawptr, rawptr, Generic) -> i32;
-SwapCallbackFunction :: distinct #type proc (rawptr, rawptr, Generic);
-CRTComparisonCallback :: distinct #type proc (rawptr, rawptr) -> i32;
-MessageCallbackFunction :: distinct #type proc (Object, ^Message, ^Response);
-UICallbackFunction :: distinct #type proc (^Element, ^Message, ^Response);
-Window :: struct { using element : Element, };
-Panel :: struct { using element : Element, };
-Scrollbar :: struct { using element : Element, };
-Button :: struct { using element : Element, };
-Textbox :: struct { using element : Element, };
-ListView :: struct { using element : Element, };
-NumericEntry :: struct { using element : Element, };
-Menu :: struct { using element : Element, };
-MenuCallbackFunction :: distinct #type proc (^Element, Generic);
-INSTANCE_TYPE :: Instance;
-SCANCODE_A ::  (0x1C);
-SCANCODE_B ::  (0x32);
-SCANCODE_C ::  (0x21);
-SCANCODE_D ::  (0x23);
-SCANCODE_E ::  (0x24);
-SCANCODE_F ::  (0x2B);
-SCANCODE_G ::  (0x34);
-SCANCODE_H ::  (0x33);
-SCANCODE_I ::  (0x43);
-SCANCODE_J ::  (0x3B);
-SCANCODE_K ::  (0x42);
-SCANCODE_L ::  (0x4B);
-SCANCODE_M ::  (0x3A);
-SCANCODE_N ::  (0x31);
-SCANCODE_O ::  (0x44);
-SCANCODE_P ::  (0x4D);
-SCANCODE_Q ::  (0x15);
-SCANCODE_R ::  (0x2D);
-SCANCODE_S ::  (0x1B);
-SCANCODE_T ::  (0x2C);
-SCANCODE_U ::  (0x3C);
-SCANCODE_V ::  (0x2A);
-SCANCODE_W ::  (0x1D);
-SCANCODE_X ::  (0x22);
-SCANCODE_Y ::  (0x35);
-SCANCODE_Z ::  (0x1A);
-SCANCODE_0 ::  (0x45);
-SCANCODE_1 ::  (0x16);
-SCANCODE_2 ::  (0x1E);
-SCANCODE_3 ::  (0x26);
-SCANCODE_4 ::  (0x25);
-SCANCODE_5 ::  (0x2E);
-SCANCODE_6 ::  (0x36);
-SCANCODE_7 ::  (0x3D);
-SCANCODE_8 ::  (0x3E);
-SCANCODE_9 ::  (0x46);
-SCANCODE_CAPS_LOCK :: 	(0x58);
-SCANCODE_SCROLL_LOCK :: 	(0x7E);
-SCANCODE_NUM_LOCK :: 	(0x77) ;
-SCANCODE_LEFT_SHIFT :: 	(0x12);
-SCANCODE_LEFT_CTRL :: 	(0x14);
-SCANCODE_LEFT_ALT :: 	(0x11);
-SCANCODE_LEFT_FLAG :: 	(0x11F);
-SCANCODE_RIGHT_SHIFT :: 	(0x59);
-SCANCODE_RIGHT_CTRL :: 	(0x114);
-SCANCODE_RIGHT_ALT :: 	(0x111);
-SCANCODE_PAUSE :: 	(0xE1);
-SCANCODE_CONTEXT_MENU ::  (0x127);
-SCANCODE_BACKSPACE :: 	(0x66);
-SCANCODE_ESCAPE :: 	(0x76);
-SCANCODE_INSERT :: 	(0x170);
-SCANCODE_HOME :: 	(0x16C);
-SCANCODE_PAGE_UP :: 	(0x17D);
-SCANCODE_DELETE :: 	(0x171);
-SCANCODE_END :: 		(0x169);
-SCANCODE_PAGE_DOWN :: 	(0x17A);
-SCANCODE_UP_ARROW :: 	(0x175);
-SCANCODE_LEFT_ARROW :: 	(0x16B);
-SCANCODE_DOWN_ARROW :: 	(0x172);
-SCANCODE_RIGHT_ARROW :: 	(0x174);
-SCANCODE_SPACE :: 	(0x29);
-SCANCODE_TAB :: 		(0x0D);
-SCANCODE_ENTER :: 	(0x5A);
-SCANCODE_SLASH :: 	(0x4A);
-SCANCODE_BACKSLASH :: 	(0x5D);
-SCANCODE_LEFT_BRACE :: 	(0x54);
-SCANCODE_RIGHT_BRACE :: 	(0x5B);
-SCANCODE_EQUALS :: 	(0x55);
-SCANCODE_BACKTICK :: 	(0x0E);
-SCANCODE_HYPHEN :: 	(0x4E);
-SCANCODE_SEMICOLON :: 	(0x4C);
-SCANCODE_QUOTE :: 	(0x52);
-SCANCODE_COMMA :: 	(0x41);
-SCANCODE_PERIOD :: 	(0x49);
-SCANCODE_NUM_DIVIDE ::  	 (0x14A);
-SCANCODE_NUM_MULTIPLY ::  (0x7C);
-SCANCODE_NUM_SUBTRACT ::  (0x7B);
-SCANCODE_NUM_ADD :: 	 (0x79);
-SCANCODE_NUM_ENTER :: 	 (0x15A);
-SCANCODE_NUM_POINT :: 	 (0x71);
-SCANCODE_NUM_0 :: 	 (0x70);
-SCANCODE_NUM_1 :: 	 (0x69);
-SCANCODE_NUM_2 :: 	 (0x72);
-SCANCODE_NUM_3 :: 	 (0x7A);
-SCANCODE_NUM_4 :: 	 (0x6B);
-SCANCODE_NUM_5 :: 	 (0x73);
-SCANCODE_NUM_6 :: 	 (0x74);
-SCANCODE_NUM_7 :: 	 (0x6C);
-SCANCODE_NUM_8 :: 	 (0x75);
-SCANCODE_NUM_9 :: 	 (0x7D);
-SCANCODE_PRINT_SCREEN_1 ::  (0x112) ;
-SCANCODE_PRINT_SCREEN_2 ::  (0x17C);
-SCANCODE_F1 ::   (0x05);
-SCANCODE_F2 ::   (0x06);
-SCANCODE_F3 ::   (0x04);
-SCANCODE_F4 ::   (0x0C);
-SCANCODE_F5 ::   (0x03);
-SCANCODE_F6 ::   (0x0B);
-SCANCODE_F7 ::   (0x83);
-SCANCODE_F8 ::   (0x0A);
-SCANCODE_F9 ::   (0x01);
-SCANCODE_F10 ::  (0x09);
-SCANCODE_F11 ::  (0x78);
-SCANCODE_F12 ::  (0x07);
-SCANCODE_ACPI_POWER ::  	(0x137);
-SCANCODE_ACPI_SLEEP ::  	(0x13F);
-SCANCODE_ACPI_WAKE ::   	(0x15E);
-SCANCODE_MM_NEXT :: 	(0x14D);
-SCANCODE_MM_PREVIOUS :: 	(0x115);
-SCANCODE_MM_STOP :: 	(0x13B);
-SCANCODE_MM_PAUSE :: 	(0x134);
-SCANCODE_MM_MUTE :: 	(0x123);
-SCANCODE_MM_QUIETER :: 	(0x121);
-SCANCODE_MM_LOUDER :: 	(0x132);
-SCANCODE_MM_SELECT :: 	(0x150);
-SCANCODE_MM_EMAIL :: 	(0x148);
-SCANCODE_MM_CALC :: 	(0x12B);
-SCANCODE_MM_FILES :: 	(0x140);
-SCANCODE_WWW_SEARCH :: 	(0x110);
-SCANCODE_WWW_HOME :: 	(0x13A);
-SCANCODE_WWW_BACK :: 	(0x138);
-SCANCODE_WWW_FORWARD :: 	(0x130);
-SCANCODE_WWW_STOP :: 	(0x128);
-SCANCODE_WWW_REFRESH :: 	(0x120);
-SCANCODE_WWW_STARRED :: 	(0x118);
-PROCESS_STATE_ALL_THREADS_TERMINATED :: 	(1);
-PROCESS_STATE_TERMINATING :: 		(2);
-PROCESS_STATE_CRASHED :: 		(4);
-FLAGS_DEFAULT ::  (0);
-SUCCESS ::  	 (-1);
-ERROR_BUFFER_TOO_SMALL :: 		(-2);
-ERROR_UNKNOWN_OPERATION_FAILURE ::  	(-7);
-ERROR_NO_MESSAGES_AVAILABLE :: 		(-9);
-ERROR_MESSAGE_QUEUE_FULL :: 		(-10);
-ERROR_MESSAGE_NOT_HANDLED_BY_GUI :: 	(-13);
-ERROR_PATH_NOT_WITHIN_MOUNTED_VOLUME :: 	(-14);
-ERROR_PATH_NOT_TRAVERSABLE :: 		(-15);
-ERROR_FILE_ALREADY_EXISTS :: 		(-19);
-ERROR_FILE_DOES_NOT_EXIST :: 		(-20);
-ERROR_DRIVE_ERROR_FILE_DAMAGED :: 	(-21) ;
-ERROR_ACCESS_NOT_WITHIN_FILE_BOUNDS :: 	(-22) ;
-ERROR_FILE_PERMISSION_NOT_GRANTED :: 	(-23);
-ERROR_FILE_IN_EXCLUSIVE_USE :: 		(-24);
-ERROR_FILE_CANNOT_GET_EXCLUSIVE_USE :: 	(-25);
-ERROR_INCORRECT_NODE_TYPE :: 		(-26);
-ERROR_EVENT_NOT_SET :: 			(-27);
-ERROR_TIMEOUT_REACHED :: 		(-29);
-ERROR_REQUEST_CLOSED_BEFORE_COMPLETE ::  (-30);
-ERROR_NO_CHARACTER_AT_COORDINATE :: 	(-31);
-ERROR_FILE_ON_READ_ONLY_VOLUME :: 	(-32);
-ERROR_USER_CANCELED_IO :: 		(-33);
-ERROR_INVALID_DIMENSIONS :: 		(-34);
-ERROR_DRIVE_CONTROLLER_REPORTED :: 	(-35);
-ERROR_COULD_NOT_ISSUE_PACKET :: 		(-36);
-ERROR_HANDLE_TABLE_FULL :: 		(-37);
-ERROR_COULD_NOT_RESIZE_FILE :: 		(-38);
-ERROR_DIRECTORY_NOT_EMPTY :: 		(-39);
-ERROR_UNSUPPORTED_FILESYSTEM :: 		(-40);
-ERROR_NODE_ALREADY_DELETED :: 		(-41);
-ERROR_NODE_IS_ROOT :: 			(-42);
-ERROR_VOLUME_MISMATCH :: 		(-43);
-ERROR_TARGET_WITHIN_SOURCE :: 		(-44);
-ERROR_TARGET_INVALID_TYPE :: 		(-45);
-ERROR_NOTHING_TO_DRAW :: 		(-46);
-ERROR_MALFORMED_NODE_PATH :: 		(-47);
-ERROR_OUT_OF_CACHE_RESOURCES :: 		(-48);
-ERROR_TARGET_IS_SOURCE :: 		(-49);
-ERROR_INVALID_NAME :: 			(-50);
-ERROR_CORRUPT_DATA :: 			(-51);
-ERROR_INSUFFICIENT_RESOURCES :: 		(-52);
-ERROR_UNSUPPORTED_FEATURE :: 		(-53);
-ERROR_FILE_TOO_FRAGMENTED :: 		(-54);
-ERROR_DRIVE_FULL :: 			(-55);
-ERROR_COULD_NOT_RESOLVE_SYMBOL :: 	(-56);
-ERROR_ALREADY_EMBEDDED :: 		(-57);
-SYSTEM_CONSTANT_TIME_STAMP_UNITS_PER_MICROSECOND ::  (0);
-SYSTEM_CONSTANT_NO_FANCY_GRAPHICS :: 		    (2);
-SYSTEM_CONSTANT_REPORTED_PROBLEMS :: 		    (3);
-SYSTEM_CONSTANT_RIGHT_TO_LEFT :: 		    (4);
-INVALID_HANDLE ::  		((Handle) (0));
-CURRENT_THREAD :: 	 	((Handle) (0x10));
-CURRENT_PROCESS :: 	 	((Handle) (0x11));
-SURFACE_UI_SHEET :: 		((Handle) (0x20));
-SURFACE_WALLPAPER :: 		((Handle) (0x21));
-DRAW_ALPHA_OVERWRITE :: 		(0x100);
-DRAW_ALPHA_FULL :: 		(0x200) ;
-WAIT_NO_TIMEOUT ::  (-1);
-MAX_WAIT_COUNT ::  		(16);
-MAX_DIRECTORY_CHILD_NAME_LENGTH ::  (256);
-PROCESS_EXECUTABLE_NOT_LOADED ::  0;
-PROCESS_EXECUTABLE_FAILED_TO_LOAD ::  1;
-PROCESS_EXECUTABLE_LOADED ::  2;
-SNAPSHOT_MAX_PROCESS_NAME_LENGTH ::  (80);
-SYSTEM_SNAPSHOT_PROCESSES ::  		(1);
-SYSTEM_SNAPSHOT_DRIVES ::  		(2);
-NOT_HANDLED ::  (-1);
-HANDLED ::  (0);
-REJECTED ::  (-2);
-SHARED_MEMORY_MAXIMUM_SIZE ::  (                  (1024) * 1024 * 1024 * 1024);
-SHARED_MEMORY_NAME_MAX_LENGTH ::  (32);
-MAP_OBJECT_ALL ::  (0);
-DRAW_STRING_HALIGN_LEFT ::  	(1);
-DRAW_STRING_HALIGN_RIGHT ::  	(2);
-DRAW_STRING_HALIGN_CENTER ::  	(3);
-DRAW_STRING_VALIGN_TOP ::  	(4);
-DRAW_STRING_VALIGN_BOTTOM ::  	(8);
-DRAW_STRING_VALIGN_CENTER ::  	(12);
-DRAW_STRING_CLIP :: 		(0);
-DRAW_STRING_WORD_WRAP ::  	(16);
-DRAW_STRING_ELLIPSIS :: 		(32);
-NODE_READ_NONE :: 		(0x0);
-NODE_READ_BLOCK :: 		(0x1);
-NODE_READ_ACCESS :: 		(0x2);
-NODE_READ_EXCLUSIVE :: 		(0x3);
-NODE_WRITE_NONE :: 		(0x00);
-NODE_WRITE_BLOCK :: 		(0x10);
-NODE_WRITE_ACCESS :: 		(0x20);
-NODE_WRITE_EXCLUSIVE :: 		(0x30);
-NODE_RESIZE_NONE :: 		(0x000);
-NODE_RESIZE_BLOCK :: 		(0x100);
-NODE_RESIZE_ACCESS :: 		(0x200);
-NODE_RESIZE_EXCLUSIVE :: 	(0x300);
-NODE_FAIL_IF_FOUND :: 		(0x1000);
-NODE_FAIL_IF_NOT_FOUND :: 	(0x2000);
-NODE_CREATE_DIRECTORIES :: 	(0x8000)  ;
-NODE_POSIX_NAMESPACE :: 		(0x10000) ;
-DIRECTORY_CHILDREN_UNKNOWN :: 	(               (-1));
-MEMORY_OPEN_FAIL_IF_FOUND ::      (0x1000);
-MEMORY_OPEN_FAIL_IF_NOT_FOUND ::  (0x2000);
-MAP_OBJECT_READ_WRITE ::         (0);
-MAP_OBJECT_READ_ONLY ::          (1);
-MAP_OBJECT_COPY_ON_WRITE ::      (2);
-BOX_STYLE_OUTWARDS ::     (0x01) ;
-BOX_STYLE_INWARDS ::      (0x02) ;
-BOX_STYLE_NEUTRAL ::      (0x03) ;
-BOX_STYLE_FLAT ::         (0x04) ;
-BOX_STYLE_NONE ::         (0x05) ;
-BOX_STYLE_SELECTED ::     (0x06) ;
-BOX_STYLE_PUSHED ::       (0x07) ;
-BOX_STYLE_DOTTED ::       (0x80);
-BOX_COLOR_GRAY ::         (0xC0C0C0);
-BOX_COLOR_DARK_GRAY ::    (0x808080);
-BOX_COLOR_WHITE ::        (0xFFFFFF);
-BOX_COLOR_BLUE ::         (0x000080);
-BOX_COLOR_TRANSPARENT ::  (0xFF00FF);
-BOX_COLOR_BLACK :: 	 (0x000000);
-STRING_FORMAT_ENOUGH_SPACE :: 	(                  (-1));
-POSIX_SYSCALL_GET_POSIX_FD_PATH ::  			(0x10000);
-PERMISSION_ACCESS_SYSTEM_FILES ::   	(1 << 0);
-PERMISSION_ACCESS_USER_FILES ::   	(1 << 1);
-PERMISSION_PROCESS_CREATE :: 		(1 << 2);
-PERMISSION_PROCESS_OPEN :: 		(1 << 3);
-PERMISSION_SCREEN_MODIFY :: 		(1 << 4)	;
-PERMISSION_SHUTDOWN :: 			(1 << 5);
-PERMISSION_TAKE_SYSTEM_SNAPSHOT :: 	(1 << 6);
-PERMISSION_WINDOW_OPEN :: 		(1 << 7);
-PERMISSION_ALL :: 			(                  (-1));
-PERMISSION_INHERIT :: 			(                  (1 << 63));
-PANEL_STYLE_DEFAULT :: 		"Panel.Default";
-PANEL_STYLE_MENU_COLUMN :: 	"Panel.Menu.Column";
-PANEL_WRAP :: 		(                  (0x0001) << 32);
-PANEL_H_LEFT :: 		(                  (0x0010) << 32);
-PANEL_H_RIGHT :: 	(                  (0x0020) << 32);
-PANEL_H_CENTER :: 	(                  (0x0040) << 32);
-PANEL_H_JUSTIFY :: 	(                  (0x0080) << 32);
-PANEL_V_TOP :: 		(                  (0x0100) << 32);
-PANEL_V_BOTTOM :: 	(                  (0x0200) << 32);
-PANEL_V_CENTER :: 	(                  (0x0400) << 32);
-PANEL_V_JUSTIFY :: 	(                  (0x0800) << 32);
-PANEL_H_SCROLL :: 	(                  (0x1000) << 32);
-PANEL_V_SCROLL :: 	(                  (0x2000) << 32);
-CELL_H_PUSH ::           (                  (0x0001) << 16);
-CELL_H_EXPAND ::         (                  (0x0002) << 16);
-CELL_H_LEFT ::           (                  (0x0004) << 16);
-CELL_H_RIGHT ::          (                  (0x0008) << 16);
-CELL_H_SHRINK :: 	(                  (0x0010) << 16);
-CELL_V_PUSH ::           (                  (0x0100) << 16);
-CELL_V_EXPAND ::         (                  (0x0200) << 16);
-CELL_V_TOP ::            (                  (0x0400) << 16);
-CELL_V_BOTTOM ::         (                  (0x0800) << 16);
-CELL_V_SHRINK :: 	(                  (0x1000) << 16);
-CELL_NEW_BAND :: 	(                  (0x8000) << 16);
-CELL_HIDDEN :: 		(                  (0xFFFF) << 16);
-ELEMENT_DO_NOT_FREE_STYLE_OVERRIDE ::  	(1 << 0);
-ELEMENT_RICH_TEXT :: 			(1 << 1);
-ELEMENT_FOCUSABLE :: 			(1 << 2);
-ELEMENT_Z_STACK :: 			(1 << 3) ;
-ELEMENT_HIDDEN :: 			(1 << 4);
-ELEMENT_USE_CHILD_AS_PARENT :: 		(1 << 5) ;
-ELEMENT_DISABLED :: 			(1 << 6);
-ELEMENT_WINDOW_COORDS_FOR_MOUSE :: 	(1 << 7) ;
-TEXTBOX_MULTILINE :: 			(1 << 0);
-TEXTBOX_BORDERED :: 			(1 << 1);
-BUTTON_DEFAULT :: 			(                  (1) << 32);
-BUTTON_DANGEROUS :: 			(                  (1) << 33);
-BUTTON_MENU_ITEM :: 			(                  (1) << 34);
-BUTTON_NOT_FOCUSABLE :: 			(                  (1) << 35);
-BUTTON_TOOLBAR :: 			(                  (1) << 36);
-SCROLLBAR_VERTICAL :: 			(                  (0) << 32);
-SCROLLBAR_HORIZONTAL :: 			(                  (1) << 32);
-LIST_VIEW_INDEX_GROUP_HEADER ::  (-1);
-LIST_VIEW_ITEM_CONTENT_TEXT :: 		(1 << 0);
-LIST_VIEW_ITEM_CONTENT_ICON :: 		(1 << 1);
-LIST_VIEW_ITEM_CONTENT_INDENTATION :: 	(1 << 2);
-LIST_VIEW_ITEM_STATE_SELECTED :: 	(1 << 0);
-LIST_VIEW_ITEM_STATE_CHECKED :: 		(1 << 1);
-LIST_VIEW_ITEM_STATE_HIDDEN :: 		(1 << 2);
-LIST_VIEW_ITEM_STATE_EXPANDABLE :: 	(1 << 3);
-LIST_VIEW_ITEM_STATE_CHECKABLE :: 	(1 << 4);
-LIST_VIEW_ITEM_STATE_DROP_TARGET :: 	(1 << 5);
-LIST_VIEW_ITEM_STATE_COLLAPSABLE :: 	(1 << 6);
-LIST_VIEW_ITEM_STATE_PARTIAL_CHECK :: 	(1 << 7);
-LIST_VIEW_ITEM_STATE_DRAG_SOURCE :: 	(1 << 8);
-LIST_VIEW_ITEM_STATE_CUT :: 		(1 << 9);
-LIST_VIEW_FIND_ITEM_FROM_Y_POSITION ::  		(0);
-LIST_VIEW_FIND_ITEM_FROM_TEXT_PREFIX ::  	(1);
-LIST_VIEW_FIND_ITEM_NON_HIDDEN ::  		(2);
-LIST_VIEW_FIND_ITEM_PARENT :: 			(3);
-LIST_VIEW_COLUMN_DEFAULT_WIDTH_PRIMARY ::  (270);
-LIST_VIEW_COLUMN_DEFAULT_WIDTH_SECONDARY ::  (130);
-LIST_VIEW_COLUMN_PRIMARY ::  (1);
-LIST_VIEW_COLUMN_RIGHT_ALIGNED ::  (2);
-LIST_VIEW_COLUMN_SORT_ASCENDING ::  (8);
-LIST_VIEW_COLUMN_SORT_DESCENDING ::  (16);
-LIST_VIEW_COLUMN_SORTABLE ::  (32);
-LIST_VIEW_SINGLE_SELECT :: 		(                  (1) << 32) ;
-LIST_VIEW_MULTI_SELECT :: 		(                  (1) << 33) ;
-LIST_VIEW_HAS_COLUMNS :: 		(                  (1) << 34) ;
-LIST_VIEW_HAS_GROUPS :: 			(                  (1) << 35) ;
-LIST_VIEW_FIXED_HEIGHT :: 		(                  (1) << 36) ;
-LIST_VIEW_VARIABLE_HEIGHT :: 		(                  (1) << 37) ;
-LIST_VIEW_TREE :: 			(                  (1) << 38) ;
-LIST_VIEW_TILED :: 			(                  (1) << 39) ;
-LIST_VIEW_BORDERED :: 			(                  (1) << 41) ;
-LIST_VIEW_DROP_TARGET_ORDERED :: 	(                  (1) << 43) ;
-LIST_VIEW_DROP_TARGET_UNORDERED :: 	(                  (1) << 44) ;
-LIST_VIEW_ROW_DIVIDERS :: 		(                  (1) << 45) ;
-LIST_VIEW_STATIC_GROUP_HEADERS :: 	(                  (1) << 46) ;
-LIST_VIEW_COLLAPSABLE_GROUPS :: 		(                  (1) << 47) ;
-LIST_VIEW_INTERNAL_SELECTION_STORAGE ::  (                  (1) << 48) ;
-LIST_VIEW_HAND_CURSOR :: 		(                  (1) << 49) ;
-LIST_VIEW_NO_ITEM_BACKGROUNDS :: 	(                  (1) << 50) ;
-LIST_VIEW_RICH_TEXT :: 			(                  (1) << 52) ;
-LIST_VIEW_LABELS_BELOW :: 		(                  (1) << 53) ;
-LIST_VIEW_MAXIMUM_ITEMS ::  (10 * 1000 * 1000);
-LIST_VIEW_MAXIMUM_GROUPS ::  (10 * 1000);
-LIST_VIEW_TRANSITION_BACKWARDS ::  		(1);
-LIST_VIEW_TRANSITION_DRAW_NEW_CONTENTS_ONCE ::  	(2) ;
-MENU_AT_CURSOR :: 			(1 << 0);
-StandardIcon :: enum {
-	ICON_ACTION_UNAVAILABLE_SYMBOLIC,
-	ICON_ADDRESS_BOOK_NEW,
-	ICON_ADDRESS_BOOK_NEW_SYMBOLIC,
-	ICON_ALIGN_HORIZONTAL_CENTER,
-	ICON_ALIGN_HORIZONTAL_CENTER_SYMBOLIC,
-	ICON_ALIGN_HORIZONTAL_LEFT,
-	ICON_ALIGN_HORIZONTAL_LEFT_SYMBOLIC,
-	ICON_ALIGN_HORIZONTAL_LEFT_TO_ANCHOR,
-	ICON_ALIGN_HORIZONTAL_LEFT_TO_ANCHOR_SYMBOLIC,
-	ICON_ALIGN_HORIZONTAL_RIGHT,
-	ICON_ALIGN_HORIZONTAL_RIGHT_SYMBOLIC,
-	ICON_ALIGN_HORIZONTAL_RIGHT_TO_ANCHOR,
-	ICON_ALIGN_HORIZONTAL_RIGHT_TO_ANCHOR_SYMBOLIC,
-	ICON_ALIGN_VERTICAL_BOTTOM,
-	ICON_ALIGN_VERTICAL_BOTTOM_SYMBOLIC,
-	ICON_ALIGN_VERTICAL_BOTTOM_TO_ANCHOR,
-	ICON_ALIGN_VERTICAL_BOTTOM_TO_ANCHOR_SYMBOLIC,
-	ICON_ALIGN_VERTICAL_CENTER,
-	ICON_ALIGN_VERTICAL_CENTER_SYMBOLIC,
-	ICON_ALIGN_VERTICAL_TOP,
-	ICON_ALIGN_VERTICAL_TOP_SYMBOLIC,
-	ICON_ALIGN_VERTICAL_TOP_TO_ANCHOR,
-	ICON_ALIGN_VERTICAL_TOP_TO_ANCHOR_SYMBOLIC,
-	ICON_APPLICATION_ADD_SYMBOLIC,
-	ICON_APPOINTMENT_NEW,
-	ICON_APPOINTMENT_NEW_SYMBOLIC,
-	ICON_APPOINTMENT_SYMBOLIC,
-	ICON_BOOKMARK_NEW,
-	ICON_BOOKMARK_NEW_SYMBOLIC,
-	ICON_CALL_START,
-	ICON_CALL_START_SYMBOLIC,
-	ICON_CALL_STOP,
-	ICON_CALL_STOP_SYMBOLIC,
-	ICON_COLOR_FILL,
-	ICON_COLOR_GRADIENT,
-	ICON_COLOR_GRADIENT_MESH,
-	ICON_COLOR_SELECT_SYMBOLIC,
-	ICON_CONTACT_NEW,
-	ICON_CONTACT_NEW_SYMBOLIC,
-	ICON_DISTRIBUTE_HORIZONTAL_CENTER,
-	ICON_DISTRIBUTE_HORIZONTAL_GAPS,
-	ICON_DISTRIBUTE_HORIZONTAL_LEFT,
-	ICON_DISTRIBUTE_HORIZONTAL_RIGHT,
-	ICON_DISTRIBUTE_VERTICAL_BOTTOM,
-	ICON_DISTRIBUTE_VERTICAL_CENTER,
-	ICON_DISTRIBUTE_VERTICAL_GAPS,
-	ICON_DISTRIBUTE_VERTICAL_TOP,
-	ICON_DOCUMENT_EDIT,
-	ICON_DOCUMENT_EDIT_SYMBOLIC,
-	ICON_DOCUMENT_EXPORT,
-	ICON_DOCUMENT_EXPORT_SYMBOLIC,
-	ICON_DOCUMENT_IMPORT,
-	ICON_DOCUMENT_IMPORT_SYMBOLIC,
-	ICON_DOCUMENT_NEW,
-	ICON_DOCUMENT_NEW_SYMBOLIC,
-	ICON_DOCUMENT_OPEN_RECENT,
-	ICON_DOCUMENT_OPEN_RECENT_SYMBOLIC,
-	ICON_DOCUMENT_OPEN_SYMBOLIC,
-	ICON_DOCUMENT_PAGE_SETUP,
-	ICON_DOCUMENT_PAGE_SETUP_SYMBOLIC,
-	ICON_DOCUMENT_PRINT_PREVIEW,
-	ICON_DOCUMENT_PRINT_PREVIEW_SYMBOLIC,
-	ICON_DOCUMENT_PRINT_SYMBOLIC,
-	ICON_DOCUMENT_PROPERTIES,
-	ICON_DOCUMENT_PROPERTIES_SYMBOLIC,
-	ICON_DOCUMENT_REVERT,
-	ICON_DOCUMENT_REVERT_SYMBOLIC,
-	ICON_DOCUMENT_SAVE_AS,
-	ICON_DOCUMENT_SAVE_AS_SYMBOLIC,
-	ICON_DOCUMENT_SAVE_SYMBOLIC,
-	ICON_DOCUMENT_SEND,
-	ICON_DOCUMENT_SEND_SYMBOLIC,
-	ICON_DRAW_CUBOID,
-	ICON_DRAW_ELLIPSE,
-	ICON_DRAW_ERASER,
-	ICON_DRAW_FREEHAND,
-	ICON_DRAW_PATH,
-	ICON_DRAW_POLYGON_STAR,
-	ICON_DRAW_RECTANGLE,
-	ICON_DRAW_SPIRAL,
-	ICON_DRAW_TEXT,
-	ICON_EDIT_CLEAR,
-	ICON_EDIT_CLEAR_ALL_SYMBOLIC,
-	ICON_EDIT_CLEAR_SYMBOLIC,
-	ICON_EDIT_COPY,
-	ICON_EDIT_COPY_SYMBOLIC,
-	ICON_EDIT_CUT,
-	ICON_EDIT_CUT_SYMBOLIC,
-	ICON_EDIT_DELETE_SYMBOLIC,
-	ICON_EDIT_FIND,
-	ICON_EDIT_FIND_REPLACE,
-	ICON_EDIT_FIND_REPLACE_SYMBOLIC,
-	ICON_EDIT_FIND_SYMBOLIC,
-	ICON_EDIT_FLAG,
-	ICON_EDIT_FLAG_SYMBOLIC,
-	ICON_EDIT_MARK,
-	ICON_EDIT_PASTE,
-	ICON_EDIT_PASTE_SYMBOLIC,
-	ICON_EDIT_REDO,
-	ICON_EDIT_REDO_SYMBOLIC,
-	ICON_EDIT_SELECT_ALL,
-	ICON_EDIT_SELECT_ALL_SYMBOLIC,
-	ICON_EDIT_SELECT_SYMBOLIC,
-	ICON_EDIT_UNDO,
-	ICON_EDIT_UNDO_ARCHIVE,
-	ICON_EDIT_UNDO_SYMBOLIC,
-	ICON_ERROR_CORRECT_SYMBOLIC,
-	ICON_EVENT_NEW,
-	ICON_FIND_LOCATION,
-	ICON_FIND_LOCATION_SYMBOLIC,
-	ICON_FOLDER_COPY,
-	ICON_FOLDER_MOVE,
-	ICON_FOLDER_NEW,
-	ICON_FOLDER_NEW_SYMBOLIC,
-	ICON_FONT_SELECT_SYMBOLIC,
-	ICON_FORMAT_INDENT_LESS,
-	ICON_FORMAT_INDENT_LESS_SYMBOLIC,
-	ICON_FORMAT_INDENT_MORE,
-	ICON_FORMAT_INDENT_MORE_SYMBOLIC,
-	ICON_FORMAT_JUSTIFY_CENTER,
-	ICON_FORMAT_JUSTIFY_CENTER_SYMBOLIC,
-	ICON_FORMAT_JUSTIFY_FILL,
-	ICON_FORMAT_JUSTIFY_FILL_SYMBOLIC,
-	ICON_FORMAT_JUSTIFY_LEFT,
-	ICON_FORMAT_JUSTIFY_LEFT_SYMBOLIC,
-	ICON_FORMAT_JUSTIFY_RIGHT,
-	ICON_FORMAT_JUSTIFY_RIGHT_SYMBOLIC,
-	ICON_FORMAT_TEXT_BOLD,
-	ICON_FORMAT_TEXT_BOLD_ES_SYMBOLIC,
-	ICON_FORMAT_TEXT_BOLD_FR_SYMBOLIC,
-	ICON_FORMAT_TEXT_BOLD_SYMBOLIC,
-	ICON_FORMAT_TEXT_CLEAR_FORMATTING_SYMBOLIC,
-	ICON_FORMAT_TEXT_DIRECTION_LTR_SYMBOLIC,
-	ICON_FORMAT_TEXT_HIGHLIGHT,
-	ICON_FORMAT_TEXT_ITALIC,
-	ICON_FORMAT_TEXT_ITALIC_ES_SYMBOLIC,
-	ICON_FORMAT_TEXT_ITALIC_SYMBOLIC,
-	ICON_FORMAT_TEXT_LARGER_SYMBOLIC,
-	ICON_FORMAT_TEXT_NONE,
-	ICON_FORMAT_TEXT_SMALLER_SYMBOLIC,
-	ICON_FORMAT_TEXT_STRIKETHROUGH,
-	ICON_FORMAT_TEXT_STRIKETHROUGH_FR_SYMBOLIC,
-	ICON_FORMAT_TEXT_STRIKETHROUGH_SYMBOLIC,
-	ICON_FORMAT_TEXT_UNDERLINE,
-	ICON_FORMAT_TEXT_UNDERLINE_FR_SYMBOLIC,
-	ICON_FORMAT_TEXT_UNDERLINE_SYMBOLIC,
-	ICON_GO_BOTTOM,
-	ICON_GO_BOTTOM_SYMBOLIC,
-	ICON_GO_DOWN,
-	ICON_GO_DOWN_SYMBOLIC,
-	ICON_GO_FIRST,
-	ICON_GO_FIRST_SYMBOLIC,
-	ICON_GO_HOME_SYMBOLIC,
-	ICON_GO_JUMP,
-	ICON_GO_JUMP_SYMBOLIC,
-	ICON_GO_LAST,
-	ICON_GO_LAST_SYMBOLIC,
-	ICON_GO_NEXT,
-	ICON_GO_NEXT_SYMBOLIC,
-	ICON_GO_PREVIOUS,
-	ICON_GO_PREVIOUS_SYMBOLIC,
-	ICON_GO_TOP,
-	ICON_GO_TOP_SYMBOLIC,
-	ICON_GO_UP,
-	ICON_GO_UP_SYMBOLIC,
-	ICON_HELP_ABOUT,
-	ICON_HELP_ABOUT_SYMBOLIC,
-	ICON_HELP_CONTENTS,
-	ICON_HELP_CONTENTS_SYMBOLIC,
-	ICON_HELP_INFO_SYMBOLIC,
-	ICON_IMAGE_ADJUST,
-	ICON_IMAGE_AUTO_ADJUST,
-	ICON_IMAGE_CROP,
-	ICON_IMAGE_CROP_SYMBOLIC,
-	ICON_IMAGE_RED_EYE,
-	ICON_IMAGE_RED_EYE_SYMBOLIC,
-	ICON_INSERT_IMAGE,
-	ICON_INSERT_IMAGE_SYMBOLIC,
-	ICON_INSERT_LINK,
-	ICON_INSERT_LINK_SYMBOLIC,
-	ICON_INSERT_OBJECT,
-	ICON_INSERT_OBJECT_SYMBOLIC,
-	ICON_INSERT_TEXT_SYMBOLIC,
-	ICON_LIST_ADD,
-	ICON_LIST_ADD_SYMBOLIC,
-	ICON_LIST_REMOVE,
-	ICON_LIST_REMOVE_SYMBOLIC,
-	ICON_MAIL_ARCHIVE,
-	ICON_MAIL_FORWARD,
-	ICON_MAIL_FORWARD_SYMBOLIC,
-	ICON_MAIL_MARK_IMPORTANT,
-	ICON_MAIL_MARK_IMPORTANT_SYMBOLIC,
-	ICON_MAIL_MARK_JUNK,
-	ICON_MAIL_MARK_JUNK_SYMBOLIC,
-	ICON_MAIL_MARK_NOTJUNK,
-	ICON_MAIL_MARK_NOTJUNK_SYMBOLIC,
-	ICON_MAIL_MESSAGE_NEW,
-	ICON_MAIL_MESSAGE_NEW_SYMBOLIC,
-	ICON_MAIL_MOVE,
-	ICON_MAIL_MOVE_SYMBOLIC,
-	ICON_MAIL_REPLY_ALL,
-	ICON_MAIL_REPLY_ALL_SYMBOLIC,
-	ICON_MAIL_REPLY_SENDER,
-	ICON_MAIL_REPLY_SENDER_SYMBOLIC,
-	ICON_MAIL_SEND,
-	ICON_MAIL_SEND_RECEIVE_SYMBOLIC,
-	ICON_MAIL_SEND_SYMBOLIC,
-	ICON_MARK_LOCATION_SYMBOLIC,
-	ICON_MEDIA_EJECT,
-	ICON_MEDIA_EJECT_SYMBOLIC,
-	ICON_MEDIA_EQ_SYMBOLIC,
-	ICON_MEDIA_PLAYBACK_PAUSE,
-	ICON_MEDIA_PLAYBACK_PAUSE_SYMBOLIC,
-	ICON_MEDIA_PLAYBACK_START,
-	ICON_MEDIA_PLAYBACK_START_SYMBOLIC,
-	ICON_MEDIA_PLAYBACK_STOP,
-	ICON_MEDIA_PLAYBACK_STOP_SYMBOLIC,
-	ICON_MEDIA_RECORD,
-	ICON_MEDIA_RECORD_SYMBOLIC,
-	ICON_MEDIA_SEEK_BACKWARD,
-	ICON_MEDIA_SEEK_BACKWARD_SYMBOLIC,
-	ICON_MEDIA_SEEK_FORWARD,
-	ICON_MEDIA_SEEK_FORWARD_SYMBOLIC,
-	ICON_MEDIA_SKIP_BACKWARD,
-	ICON_MEDIA_SKIP_FORWARD,
-	ICON_MEDIA_VIEW_SUBTITLES_SYMBOLIC,
-	ICON_NODE_ADD,
-	ICON_NODE_ALIGN_HORIZONTAL,
-	ICON_NODE_ALIGN_VERTICAL,
-	ICON_NODE_BREAK,
-	ICON_NODE_CUSP,
-	ICON_NODE_DELETE,
-	ICON_NODE_DELETE_SEGMENT,
-	ICON_NODE_DISTRIBUTE_HORIZONTAL,
-	ICON_NODE_DISTRIBUTE_VERTICAL,
-	ICON_NODE_INSERT,
-	ICON_NODE_JOIN,
-	ICON_NODE_JOIN_SEGMENT,
-	ICON_NODE_SMOOTH,
-	ICON_NODE_SYMMETRIC,
-	ICON_OBJECT_FLIP_HORIZONTAL,
-	ICON_OBJECT_FLIP_HORIZONTAL_SYMBOLIC,
-	ICON_OBJECT_FLIP_VERTICAL,
-	ICON_OBJECT_FLIP_VERTICAL_SYMBOLIC,
-	ICON_OBJECT_GROUP,
-	ICON_OBJECT_GROUP_SYMBOLIC,
-	ICON_OBJECT_INVERSE,
-	ICON_OBJECT_INVERSE_SYMBOLIC,
-	ICON_OBJECT_MERGE,
-	ICON_OBJECT_ROTATE_LEFT,
-	ICON_OBJECT_ROTATE_LEFT_SYMBOLIC,
-	ICON_OBJECT_ROTATE_RIGHT,
-	ICON_OBJECT_ROTATE_RIGHT_SYMBOLIC,
-	ICON_OBJECT_SELECT_SYMBOLIC,
-	ICON_OBJECT_STRAIGHTEN,
-	ICON_OBJECT_TO_PATH,
-	ICON_OBJECT_UNGROUP,
-	ICON_OBJECT_UNGROUP_SYMBOLIC,
-	ICON_OPEN_MENU,
-	ICON_OPEN_MENU_SYMBOLIC,
-	ICON_PAN_DOWN_SYMBOLIC,
-	ICON_PAN_END_SYMBOLIC,
-	ICON_PAN_START_SYMBOLIC,
-	ICON_PAN_UP_SYMBOLIC,
-	ICON_PANE_HIDE_SYMBOLIC,
-	ICON_PANE_SHOW_SYMBOLIC,
-	ICON_PATH_BREAK_APART,
-	ICON_PATH_BREAK_APART_SYMBOLIC,
-	ICON_PATH_COMBINE,
-	ICON_PATH_COMBINE_SYMBOLIC,
-	ICON_PATH_DIFFERENCE,
-	ICON_PATH_DIFFERENCE_SYMBOLIC,
-	ICON_PATH_DIVISION,
-	ICON_PATH_DIVISION_SYMBOLIC,
-	ICON_PATH_EXCLUSION,
-	ICON_PATH_EXCLUSION_SYMBOLIC,
-	ICON_PATH_INTERSECTION,
-	ICON_PATH_INTERSECTION_SYMBOLIC,
-	ICON_PATH_UNION,
-	ICON_PATH_UNION_SYMBOLIC,
-	ICON_PROCESS_STOP,
-	ICON_PROCESS_STOP_SYMBOLIC,
-	ICON_SEGMENT_CURVE,
-	ICON_SEGMENT_LINE,
-	ICON_SELECTION_ADD,
-	ICON_SELECTION_BOTTOM,
-	ICON_SELECTION_BOTTOM_SYMBOLIC,
-	ICON_SELECTION_CHECKED,
-	ICON_SELECTION_END_SYMBOLIC,
-	ICON_SELECTION_LOWER,
-	ICON_SELECTION_LOWER_SYMBOLIC,
-	ICON_SELECTION_RAISE,
-	ICON_SELECTION_RAISE_SYMBOLIC,
-	ICON_SELECTION_REMOVE,
-	ICON_SELECTION_START_SYMBOLIC,
-	ICON_SELECTION_TOP,
-	ICON_SELECTION_TOP_SYMBOLIC,
-	ICON_SEND_TO,
-	ICON_SEND_TO_SYMBOLIC,
-	ICON_STAR_NEW_SYMBOLIC,
-	ICON_STROKE_TO_PATH,
-	ICON_SYSTEM_LOCK_SCREEN,
-	ICON_SYSTEM_LOCK_SCREEN_SYMBOLIC,
-	ICON_SYSTEM_LOG_OUT,
-	ICON_SYSTEM_REBOOT,
-	ICON_SYSTEM_RUN,
-	ICON_SYSTEM_RUN_SYMBOLIC,
-	ICON_SYSTEM_SHUTDOWN,
-	ICON_SYSTEM_SHUTDOWN_SYMBOLIC,
-	ICON_SYSTEM_SUSPEND,
-	ICON_TAB_NEW_SYMBOLIC,
-	ICON_TAG_NEW,
-	ICON_TAG_NEW_SYMBOLIC,
-	ICON_TOOL_MEASURE,
-	ICON_TOOL_NODE_EDITOR,
-	ICON_TOOLS_CHECK_SPELLING_SYMBOLIC,
-	ICON_TOOLS_TIMER_SYMBOLIC,
-	ICON_VIEW_COLUMN_SYMBOLIC,
-	ICON_VIEW_CONTINUOUS_SYMBOLIC,
-	ICON_VIEW_DUAL_SYMBOLIC,
-	ICON_VIEW_FILTER_SYMBOLIC,
-	ICON_VIEW_FULLSCREEN_SYMBOLIC,
-	ICON_VIEW_GRID_SYMBOLIC,
-	ICON_VIEW_LIST_COMPACT_SYMBOLIC,
-	ICON_VIEW_LIST_IMAGES_SYMBOLIC,
-	ICON_VIEW_LIST_SYMBOLIC,
-	ICON_VIEW_LIST_VIDEO_SYMBOLIC,
-	ICON_VIEW_MORE_HORIZONTAL_SYMBOLIC,
-	ICON_VIEW_MORE_SYMBOLIC,
-	ICON_VIEW_PAGED_SYMBOLIC,
-	ICON_VIEW_PIN_SYMBOLIC,
-	ICON_VIEW_REFRESH,
-	ICON_VIEW_REFRESH_SYMBOLIC,
-	ICON_VIEW_RESTORE_SYMBOLIC,
-	ICON_VIEW_SORT_ASCENDING_SYMBOLIC,
-	ICON_VIEW_SORT_DESCENDING_SYMBOLIC,
-	ICON_WINDOW_CLOSE,
-	ICON_WINDOW_CLOSE_SYMBOLIC,
-	ICON_WINDOW_MAXIMIZE_SYMBOLIC,
-	ICON_WINDOW_MINIMIZE_SYMBOLIC,
-	ICON_WINDOW_NEW,
-	ICON_WINDOW_NEW_SYMBOLIC,
-	ICON_WINDOW_POP_OUT_SYMBOLIC,
-	ICON_WINDOW_RESTORE_SYMBOLIC,
-	ICON_ZOOM_FIT_BEST,
-	ICON_ZOOM_FIT_BEST_SYMBOLIC,
-	ICON_ZOOM_IN,
-	ICON_ZOOM_IN_SYMBOLIC,
-	ICON_ZOOM_ORIGINAL,
-	ICON_ZOOM_ORIGINAL_SYMBOLIC,
-	ICON_ZOOM_OUT,
-	ICON_ZOOM_OUT_SYMBOLIC,
-	ICON_ACCESSORIES_CALCULATOR,
-	ICON_ACCESSORIES_CALCULATOR_SYMBOLIC,
-	ICON_ACCESSORIES_SCREENSHOT,
-	ICON_ACCESSORIES_TEXT_EDITOR,
-	ICON_ACCESSORIES_TEXT_EDITOR_SYMBOLIC,
-	ICON_APPLICATION_DEFAULT_ICON,
-	ICON_ARCHIVE_MANAGER,
-	ICON_INTERNET_CHAT,
-	ICON_INTERNET_CHAT_SYMBOLIC,
-	ICON_INTERNET_MAIL,
-	ICON_INTERNET_MAIL_SYMBOLIC,
-	ICON_INTERNET_NEWS_READER,
-	ICON_INTERNET_NEWS_READER_SYMBOLIC,
-	ICON_INTERNET_WEB_BROWSER,
-	ICON_INTERNET_WEB_BROWSER_SYMBOLIC,
-	ICON_MULTIMEDIA_AUDIO_PLAYER,
-	ICON_MULTIMEDIA_PHOTO_MANAGER,
-	ICON_MULTIMEDIA_VIDEO_PLAYER,
-	ICON_OFFICE_ADDRESS_BOOK,
-	ICON_OFFICE_CALENDAR,
-	ICON_OFFICE_CALENDAR_SYMBOLIC,
-	ICON_ONBOARD,
-	ICON_POSTSCRIPT_VIEWER,
-	ICON_PREFERENCES_DESKTOP,
-	ICON_PREFERENCES_DESKTOP_FONT,
-	ICON_SYSTEM_FILE_MANAGER,
-	ICON_SYSTEM_OS_INSTALLER,
-	ICON_SYSTEM_SOFTWARE_INSTALL,
-	ICON_SYSTEM_SOFTWARE_INSTALL_SYMBOLIC,
-	ICON_SYSTEM_SOFTWARE_UPDATE,
-	ICON_SYSTEM_USERS,
-	ICON_SYSTEM_USERS_SYMBOLIC,
-	ICON_UTILITIES_SYSTEM_MONITOR,
-	ICON_UTILITIES_TERMINAL,
-	ICON_UTILITIES_TERMINAL_SYMBOLIC,
-	ICON_APPLICATIONS_ACCESSORIES,
-	ICON_APPLICATIONS_AUDIO_SYMBOLIC,
-	ICON_APPLICATIONS_DEVELOPMENT,
-	ICON_APPLICATIONS_DEVELOPMENT_SYMBOLIC,
-	ICON_APPLICATIONS_EDUCATION,
-	ICON_APPLICATIONS_EDUCATION_SYMBOLIC,
-	ICON_APPLICATIONS_ENGINEERING_SYMBOLIC,
-	ICON_APPLICATIONS_FONTS,
-	ICON_APPLICATIONS_GAMES,
-	ICON_APPLICATIONS_GAMES_SYMBOLIC,
-	ICON_APPLICATIONS_GRAPHICS,
-	ICON_APPLICATIONS_GRAPHICS_SYMBOLIC,
-	ICON_APPLICATIONS_INTERFACEDESIGN,
-	ICON_APPLICATIONS_INTERNET_SYMBOLIC,
-	ICON_APPLICATIONS_MULTIMEDIA,
-	ICON_APPLICATIONS_MULTIMEDIA_SYMBOLIC,
-	ICON_APPLICATIONS_OFFICE,
-	ICON_APPLICATIONS_OFFICE_SYMBOLIC,
-	ICON_APPLICATIONS_OTHER,
-	ICON_APPLICATIONS_OTHER_SYMBOLIC,
-	ICON_APPLICATIONS_PHOTOGRAPHY,
-	ICON_APPLICATIONS_SCIENCE,
-	ICON_APPLICATIONS_SCIENCE_SYMBOLIC,
-	ICON_APPLICATIONS_UTILITIES,
-	ICON_APPLICATIONS_UTILITIES_SYMBOLIC,
-	ICON_APPLICATIONS_VIDEO_SYMBOLIC,
-	ICON_BUG,
-	ICON_BUG_SYMBOLIC,
-	ICON_EMOJI_ACTIVITY_SYMBOLIC,
-	ICON_EMOJI_BODY_SYMBOLIC,
-	ICON_EMOJI_FOOD_SYMBOLIC,
-	ICON_EMOJI_NATURE_SYMBOLIC,
-	ICON_EMOJI_OBJECTS_SYMBOLIC,
-	ICON_EMOJI_TRAVEL_SYMBOLIC,
-	ICON_EVENT_BIRTHDAY_SYMBOLIC,
-	ICON_PREFERENCES_BLUETOOTH_SYMBOLIC,
-	ICON_PREFERENCES_COLOR,
-	ICON_PREFERENCES_COLOR_SYMBOLIC,
-	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY,
-	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY_POINTING,
-	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY_SYMBOLIC,
-	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY_ZOOM,
-	ICON_PREFERENCES_DESKTOP_APPLICATIONS,
-	ICON_PREFERENCES_DESKTOP_DISPLAY,
-	ICON_PREFERENCES_DESKTOP_DISPLAY_SYMBOLIC,
-	ICON_PREFERENCES_DESKTOP_KEYBOARD,
-	ICON_PREFERENCES_DESKTOP_KEYBOARD_SYMBOLIC,
-	ICON_PREFERENCES_DESKTOP_LOCALE,
-	ICON_PREFERENCES_DESKTOP_LOCALE_SYMBOLIC,
-	ICON_PREFERENCES_DESKTOP_ONLINE_ACCOUNTS,
-	ICON_PREFERENCES_DESKTOP_ONLINE_ACCOUNTS_SYMBOLIC,
-	ICON_PREFERENCES_DESKTOP_PERIPHERALS,
-	ICON_PREFERENCES_DESKTOP_SOUND,
-	ICON_PREFERENCES_DESKTOP_WALLPAPER,
-	ICON_PREFERENCES_OTHER_SYMBOLIC,
-	ICON_PREFERENCES_SYSTEM,
-	ICON_PREFERENCES_SYSTEM_NETWORK,
-	ICON_PREFERENCES_SYSTEM_NETWORK_SYMBOLIC,
-	ICON_PREFERENCES_SYSTEM_NOTIFICATIONS,
-	ICON_PREFERENCES_SYSTEM_PARENTAL_CONTROL_SYMBOLIC,
-	ICON_PREFERENCES_SYSTEM_PARENTAL_CONTROLS,
-	ICON_PREFERENCES_SYSTEM_POWER,
-	ICON_PREFERENCES_SYSTEM_POWER_SYMBOLIC,
-	ICON_PREFERENCES_SYSTEM_PRIVACY_HOUSEKEEPING,
-	ICON_PREFERENCES_SYSTEM_SHARING,
-	ICON_PREFERENCES_SYSTEM_SHARING_SYMBOLIC,
-	ICON_PREFERENCES_SYSTEM_TIME,
-	ICON_PREFERENCES_SYSTEM_TIME_SYMBOLIC,
-	ICON_PREFERENCES_SYSTEM_WINDOWS,
-	ICON_AC_ADAPTER_SYMBOLIC,
-	ICON_AUDIO_CARD_SYMBOLIC,
-	ICON_AUDIO_HEADPHONES,
-	ICON_AUDIO_HEADPHONES_SYMBOLIC,
-	ICON_AUDIO_HEADSET_SYMBOLIC,
-	ICON_AUDIO_HEADSETS,
-	ICON_AUDIO_INPUT_MICROPHONE,
-	ICON_AUDIO_INPUT_MICROPHONE_SYMBOLIC,
-	ICON_AUDIO_SPEAKER_CENTER,
-	ICON_AUDIO_SPEAKER_CENTER_BACK,
-	ICON_AUDIO_SPEAKER_CENTER_BACK_TESTING,
-	ICON_AUDIO_SPEAKER_CENTER_TESTING,
-	ICON_AUDIO_SPEAKER_LEFT,
-	ICON_AUDIO_SPEAKER_LEFT_BACK,
-	ICON_AUDIO_SPEAKER_LEFT_BACK_TESTING,
-	ICON_AUDIO_SPEAKER_LEFT_SIDE,
-	ICON_AUDIO_SPEAKER_LEFT_SIDE_TESTING,
-	ICON_AUDIO_SPEAKER_LEFT_TESTING,
-	ICON_AUDIO_SPEAKER_RIGHT,
-	ICON_AUDIO_SPEAKER_RIGHT_BACK,
-	ICON_AUDIO_SPEAKER_RIGHT_BACK_TESTING,
-	ICON_AUDIO_SPEAKER_RIGHT_SIDE,
-	ICON_AUDIO_SPEAKER_RIGHT_SIDE_TESTING,
-	ICON_AUDIO_SPEAKER_RIGHT_TESTING,
-	ICON_AUDIO_SPEAKERS,
-	ICON_AUDIO_SPEAKERS_SYMBOLIC,
-	ICON_AUDIO_SUBWOOFER,
-	ICON_AUDIO_SUBWOOFER_TESTING,
-	ICON_BATTERY,
-	ICON_BATTERY_SYMBOLIC,
-	ICON_BLUETOOTH,
-	ICON_BLUETOOTH_SYMBOLIC,
-	ICON_CAMERA_PHOTO,
-	ICON_CAMERA_PHOTO_SYMBOLIC,
-	ICON_CAMERA_VIDEO,
-	ICON_CAMERA_VIDEO_SYMBOLIC,
-	ICON_CAMERA_WEB,
-	ICON_CAMERA_WEB_SYMBOLIC,
-	ICON_COLORIMETER_COLORHUG_SYMBOLIC,
-	ICON_COMPUTER_LAPTOP,
-	ICON_COMPUTER_LAPTOP_SYMBOLIC,
-	ICON_DISPLAY_PROJECTOR_SYMBOLIC,
-	ICON_DRIVE_HARDDISK,
-	ICON_DRIVE_HARDDISK_IEEE1394_SYMBOLIC,
-	ICON_DRIVE_HARDDISK_SOLIDSTATE,
-	ICON_DRIVE_HARDDISK_SOLIDSTATE_SYMBOLIC,
-	ICON_DRIVE_HARDDISK_SYMBOLIC,
-	ICON_DRIVE_MULTIDISK_SYMBOLIC,
-	ICON_DRIVE_OPTICAL_SYMBOLIC,
-	ICON_DRIVE_REMOVABLE_MEDIA,
-	ICON_DRIVE_REMOVABLE_MEDIA_SYMBOLIC,
-	ICON_DRIVE_REMOVABLE_MEDIA_USB,
-	ICON_FINGERPRINT,
-	ICON_FINGERPRINT_SYMBOLIC,
-	ICON_GNOME_DEV_PRINTER_NEW,
-	ICON_INPUT_DIALPAD_SYMBOLIC,
-	ICON_INPUT_GAMING,
-	ICON_INPUT_GAMING_SYMBOLIC,
-	ICON_INPUT_KEYBOARD,
-	ICON_INPUT_KEYBOARD_SYMBOLIC,
-	ICON_INPUT_MOUSE,
-	ICON_INPUT_MOUSE_SYMBOLIC,
-	ICON_INPUT_TABLET,
-	ICON_INPUT_TABLET_SYMBOLIC,
-	ICON_INPUT_TOUCHPAD,
-	ICON_INPUT_TOUCHPAD_SYMBOLIC,
-	ICON_MEDIA_FLASH_CF,
-	ICON_MEDIA_FLASH_MS,
-	ICON_MEDIA_FLASH_SYMBOLIC,
-	ICON_MEDIA_FLOPPY_SYMBOLIC,
-	ICON_MEDIA_MEMORY,
-	ICON_MEDIA_MEMORY_SD,
-	ICON_MEDIA_MEMORY_SEMBOLIC,
-	ICON_MEDIA_MEMORY_SM,
-	ICON_MEDIA_OPTICAL,
-	ICON_MEDIA_OPTICAL_SYMBOLIC,
-	ICON_MEDIA_REMOVABLE_SYMBOLIC,
-	ICON_MEDIA_TAPE_SYMBOLIC,
-	ICON_MEDIA_ZIP_SYMBOLIC,
-	ICON_MODEM,
-	ICON_MODEM_SYMBOLIC,
-	ICON_MULTIMEDIA_PLAYER,
-	ICON_MULTIMEDIA_PLAYER_SYMBOLIC,
-	ICON_NETWORK_CELLULAR,
-	ICON_NETWORK_FIREWALL,
-	ICON_NETWORK_VPN,
-	ICON_NETWORK_WIRED,
-	ICON_NETWORK_WIRELESS,
-	ICON_NETWORK_WIRELESS_HOTSPOT,
-	ICON_NM_DEVICE_WWAN,
-	ICON_PDA_SYMBOLIC,
-	ICON_PHONE,
-	ICON_PHONE_SYMBOLIC,
-	ICON_PRINTER,
-	ICON_PRINTER_NETWORK,
-	ICON_PRINTER_SYMBOLIC,
-	ICON_SCANNER,
-	ICON_SCANNER_SYMBOLIC,
-	ICON_TABLET,
-	ICON_TABLET_SYMBOLIC,
-	ICON_TV_SYMBOLIC,
-	ICON_UNINTERRUPTIBLE_POWER_SUPPLY,
-	ICON_UNINTERRUPTIBLE_POWER_SUPPLY_SYMBOLIC,
-	ICON_VIDEO_DISPLAY,
-	ICON_VIDEO_DISPLAY_SYMBOLIC,
-	ICON_EMBLEM_DEFAULT_SYMBOLIC,
-	ICON_EMBLEM_DOCUMENTS_SYMBOLIC,
-	ICON_EMBLEM_FAVORITE_SYMBOLIC,
-	ICON_EMBLEM_IMPORTANT_SYMBOLIC,
-	ICON_EMBLEM_MUSIC_SYMBOLIC,
-	ICON_EMBLEM_OK_SYMBOLIC,
-	ICON_EMBLEM_PHOTOS_SYMBOLIC,
-	ICON_EMBLEM_READONLY,
-	ICON_EMBLEM_SHARED_SYMBOLIC,
-	ICON_EMBLEM_SYMBOLIC_LINK,
-	ICON_EMBLEM_SYNCHRONIZED,
-	ICON_EMBLEM_SYNCHRONIZING_SYMBOLIC,
-	ICON_EMBLEM_UNREADABLE,
-	ICON_EMBLEM_VIDEOS_SYMBOLIC,
-	ICON_FACE_ANGEL,
-	ICON_FACE_ANGEL_SYMBOLIC,
-	ICON_FACE_ANGRY,
-	ICON_FACE_ANGRY_SYMBOLIC,
-	ICON_FACE_COOL,
-	ICON_FACE_COOL_SYMBOLIC,
-	ICON_FACE_CRYING,
-	ICON_FACE_CRYING_SYMBOLIC,
-	ICON_FACE_DEVILISH,
-	ICON_FACE_DEVILISH_SYMBOLIC,
-	ICON_FACE_EMBARRASSED,
-	ICON_FACE_EMBARRASSED_SYMBOLIC,
-	ICON_FACE_HEART,
-	ICON_FACE_HEART_BROKEN,
-	ICON_FACE_HEART_BROKEN_SYMBOLIC,
-	ICON_FACE_HEART_SYMBOLIC,
-	ICON_FACE_KISS,
-	ICON_FACE_KISS_SYMBOLIC,
-	ICON_FACE_LAUGH,
-	ICON_FACE_LAUGH_SYMBOLIC,
-	ICON_FACE_MONKEY_SYMBOLIC,
-	ICON_FACE_PLAIN,
-	ICON_FACE_PLAIN_SYMBOLIC,
-	ICON_FACE_RASPBERRY,
-	ICON_FACE_RASPBERRY_SYMBOLIC,
-	ICON_FACE_SAD,
-	ICON_FACE_SAD_SYMBOLIC,
-	ICON_FACE_SICK,
-	ICON_FACE_SICK_SYMBOLIC,
-	ICON_FACE_SMILE,
-	ICON_FACE_SMILE_BIG,
-	ICON_FACE_SMILE_BIG_SYMBOLIC,
-	ICON_FACE_SMILE_SYMBOLIC,
-	ICON_FACE_SMIRK,
-	ICON_FACE_SMIRK_SYMBOLIC,
-	ICON_FACE_SURPRISE,
-	ICON_FACE_SURPRISE_SYMBOLIC,
-	ICON_FACE_TIRED,
-	ICON_FACE_TIRED_SYMBOLIC,
-	ICON_FACE_UNCERTAIN,
-	ICON_FACE_UNCERTAIN_SYMBOLIC,
-	ICON_FACE_WINK,
-	ICON_FACE_WINK_SYMBOLIC,
-	ICON_FACE_WORRIED,
-	ICON_FACE_WORRIED_SYMBOLIC,
-	ICON_APPLICATION_CERTIFICATE_SYMBOLIC,
-	ICON_APPLICATION_EPUB_ZIP,
-	ICON_APPLICATION_ILLUSTRATOR,
-	ICON_APPLICATION_JAVASCRIPT,
-	ICON_APPLICATION_MSWORD,
-	ICON_APPLICATION_OCTET_STREAM,
-	ICON_APPLICATION_PDF,
-	ICON_APPLICATION_PGP,
-	ICON_APPLICATION_RSS_XML_SYMBOLIC,
-	ICON_APPLICATION_VND,
-	ICON_APPLICATION_X_APPLIANCE_SYMBOLIC,
-	ICON_APPLICATION_X_BITTORRENT,
-	ICON_APPLICATION_X_CD_IMAGE,
-	ICON_APPLICATION_X_DESKTOP,
-	ICON_APPLICATION_X_EXECUTABLE_SYMBOLIC,
-	ICON_APPLICATION_X_FICTIONBOOK_XML,
-	ICON_APPLICATION_X_FIRMWARE,
-	ICON_APPLICATION_X_FIRMWARE_SYMBOLIC,
-	ICON_APPLICATION_X_FLASH_VIDEO,
-	ICON_APPLICATION_X_MS_DOS_EXECUTABLE,
-	ICON_APPLICATION_X_PARTIAL_DOWNLOAD,
-	ICON_APPLICATION_X_PHP,
-	ICON_APPLICATION_X_RUBY,
-	ICON_AUDIO_X_GENERIC,
-	ICON_AUDIO_X_GENERIC_SYMBOLIC,
-	ICON_AUDIO_X_PLAYLIST,
-	ICON_EXTENSION,
-	ICON_FONT_X_GENERIC,
-	ICON_FONT_X_GENERIC_SYMBOLIC,
-	ICON_IMAGE_VND,
-	ICON_IMAGE_X_GENERIC,
-	ICON_IMAGE_X_GENERIC_SYMBOLIC,
-	ICON_IMAGE_X_XCF,
-	ICON_INTERNET_FEED,
-	ICON_MODEL,
-	ICON_OFFICE_CONTACT,
-	ICON_OFFICE_DATABASE,
-	ICON_PACKAGE_X_GENERIC,
-	ICON_PACKAGE_X_GENERIC_SYMBOLIC,
-	ICON_PAYMENT_CARD,
-	ICON_PAYMENT_CARD_AMEX,
-	ICON_PAYMENT_CARD_DINERS_CLUB,
-	ICON_PAYMENT_CARD_DISCOVER,
-	ICON_PAYMENT_CARD_JCB,
-	ICON_PAYMENT_CARD_MASTERCARD,
-	ICON_PAYMENT_CARD_SYMBOLIC,
-	ICON_PAYMENT_CARD_UNIONPAY,
-	ICON_PAYMENT_CARD_VISA,
-	ICON_TEXT,
-	ICON_TEXT_CSS,
-	ICON_TEXT_HTML,
-	ICON_TEXT_HTML_SYMBOLIC,
-	ICON_TEXT_MARKDOWN,
-	ICON_TEXT_X_BIBTEX,
-	ICON_TEXT_X_CHANGELOG,
-	ICON_TEXT_X_CHDR,
-	ICON_TEXT_X_COPYING,
-	ICON_TEXT_X_COPYING_SYMBOLIC,
-	ICON_TEXT_X_CSRC,
-	ICON_TEXT_X_GENERIC_SYMBOLIC,
-	ICON_TEXT_X_GENERIC_TEMPLATE,
-	ICON_TEXT_X_GETTEXT_TRANSLATION,
-	ICON_TEXT_X_GETTEXT_TRANSLATION_TEMPLATE,
-	ICON_TEXT_X_GO,
-	ICON_TEXT_X_INSTALL,
-	ICON_TEXT_X_MAKEFILE,
-	ICON_TEXT_X_PREVIEW,
-	ICON_TEXT_X_PYTHON,
-	ICON_TEXT_X_README,
-	ICON_TEXT_X_SASS,
-	ICON_TEXT_X_SCRIPT,
-	ICON_TEXT_X_SSA,
-	ICON_TEXT_X_TEX,
-	ICON_TEXT_X_VALA,
-	ICON_UNKNOWN,
-	ICON_VIDEO_X_GENERIC,
-	ICON_VIDEO_X_GENERIC_SYMBOLIC,
-	ICON_X_OFFICE_ADDRESS_BOOK_SYMBOLIC,
-	ICON_X_OFFICE_DOCUMENT,
-	ICON_X_OFFICE_DOCUMENT_SYMBOLIC,
-	ICON_X_OFFICE_DOCUMENT_TEMPLATE,
-	ICON_X_OFFICE_DRAWING,
-	ICON_X_OFFICE_DRAWING_SYMBOLIC,
-	ICON_X_OFFICE_DRAWING_TEMPLATE,
-	ICON_X_OFFICE_PRESENTATION,
-	ICON_X_OFFICE_PRESENTATION_SYMBOLIC,
-	ICON_X_OFFICE_PRESENTATION_TEMPLATE,
-	ICON_X_OFFICE_SPREADSHEET,
-	ICON_X_OFFICE_SPREADSHEET_SYMBOLIC,
-	ICON_X_OFFICE_SPREADSHEET_TEMPLATE,
-	ICON_BOOKMARK_MISSING,
-	ICON_DISTRIBUTOR_LOGO,
-	ICON_DISTRIBUTOR_LOGO_SYMBOLIC,
-	ICON_FOLDER,
-	ICON_FOLDER_DOCUMENTS,
-	ICON_FOLDER_DOCUMENTS_OPEN,
-	ICON_FOLDER_DOCUMENTS_SYMBOLIC,
-	ICON_FOLDER_DOWNLOAD,
-	ICON_FOLDER_DOWNLOAD_OPEN,
-	ICON_FOLDER_DOWNLOAD_SYMBOLIC,
-	ICON_FOLDER_MUSIC,
-	ICON_FOLDER_MUSIC_OPEN,
-	ICON_FOLDER_MUSIC_SYMBOLIC,
-	ICON_FOLDER_OPEN,
-	ICON_FOLDER_PICTURES,
-	ICON_FOLDER_PICTURES_OPEN,
-	ICON_FOLDER_PICTURES_SYMBOLIC,
-	ICON_FOLDER_PUBLICSHARE,
-	ICON_FOLDER_PUBLICSHARE_OPEN,
-	ICON_FOLDER_PUBLICSHARE_SYMBOLIC,
-	ICON_FOLDER_RECENT,
-	ICON_FOLDER_RECENT_SYMBOLIC,
-	ICON_FOLDER_REMOTE,
-	ICON_FOLDER_REMOTE_OPEN,
-	ICON_FOLDER_SAVED_SEARCH,
-	ICON_FOLDER_SYMBOLIC,
-	ICON_FOLDER_TAG,
-	ICON_FOLDER_TEMPLATES,
-	ICON_FOLDER_TEMPLATES_OPEN,
-	ICON_FOLDER_TEMPLATES_SYMBOLIC,
-	ICON_FOLDER_VIDEOS,
-	ICON_FOLDER_VIDEOS_OPEN,
-	ICON_FOLDER_VIDEOS_SYMBOLIC,
-	ICON_INTERNET_RADIO,
-	ICON_INTERNET_RADIO_SYMBOLIC,
-	ICON_LIBRARY_AUDIOBOOK,
-	ICON_LIBRARY_PLACES,
-	ICON_LIBRARY_PODCAST,
-	ICON_MAIL_INBOX,
-	ICON_MAIL_INBOX_SYMBOLIC,
-	ICON_MAIL_MAILBOX,
-	ICON_MAIL_MAILBOX_SYMBOLIC,
-	ICON_MAIL_OUTBOX,
-	ICON_MAIL_OUTBOX_SYMBOLIC,
-	ICON_NETWORK_SERVER_SYMBOLIC,
-	ICON_PLAYLIST,
-	ICON_PLAYLIST_AUTOMATIC,
-	ICON_PLAYLIST_QUEUE,
-	ICON_PLAYLIST_QUEUE_SYMBOLIC,
-	ICON_PLAYLIST_SIMILAR,
-	ICON_PLAYLIST_SYMBOLIC,
-	ICON_TAG_SYMBOLIC,
-	ICON_USER_BOOKMARKS_SYMBOLIC,
-	ICON_USER_HOME,
-	ICON_USER_HOME_OPEN,
-	ICON_USER_HOME_SYMBOLIC,
-	ICON_USER_TRASH,
-	ICON_USER_TRASH_FULL,
-	ICON_USER_TRASH_SYMBOLIC,
-	ICON_AIRPLANE_MODE,
-	ICON_AIRPLANE_MODE_SYMBOLIC,
-	ICON_ALARM_SYMBOLIC,
-	ICON_APPOINTMENT_MISSED,
-	ICON_APPOINTMENT_MISSED_SYMBOLIC,
-	ICON_APPOINTMENT_SOON,
-	ICON_APPOINTMENT_SOON_SYMBOLIC,
-	ICON_AUDIO_VOLUME_HIGH_SYMBOLIC,
-	ICON_AUDIO_VOLUME_LOW_SYMBOLIC,
-	ICON_AUDIO_VOLUME_MEDIUM_SYMBOLIC,
-	ICON_AUDIO_VOLUME_MUTED_BLOCKING_SYMBOLIC,
-	ICON_AUDIO_VOLUME_MUTED_SYMBOLIC,
-	ICON_AVATAR_DEFAULT,
-	ICON_AVATAR_DEFAULT_SYMBOLIC,
-	ICON_BATTERY_AC_ADAPTER,
-	ICON_BATTERY_AC_ADAPTER_SYMBOLIC,
-	ICON_BATTERY_CAUTION,
-	ICON_BATTERY_CAUTION_CHARGING,
-	ICON_BATTERY_CAUTION_CHARGING_SYMBOLIC,
-	ICON_BATTERY_CAUTION_SYMBOLIC,
-	ICON_BATTERY_EMPTY,
-	ICON_BATTERY_EMPTY_CHARGING,
-	ICON_BATTERY_EMPTY_CHARGING_SYMBOLIC,
-	ICON_BATTERY_EMPTY_SYMBOLIC,
-	ICON_BATTERY_FULL,
-	ICON_BATTERY_FULL_CHARGED,
-	ICON_BATTERY_FULL_CHARGED_SYMBOLIC,
-	ICON_BATTERY_FULL_CHARGING,
-	ICON_BATTERY_FULL_CHARGING_SYMBOLIC,
-	ICON_BATTERY_FULL_SYMBOLIC,
-	ICON_BATTERY_GOOD,
-	ICON_BATTERY_GOOD_CHARGING,
-	ICON_BATTERY_GOOD_CHARGING_SYMBOLIC,
-	ICON_BATTERY_GOOD_SYMBOLIC,
-	ICON_BATTERY_LOW,
-	ICON_BATTERY_LOW_CHARGING,
-	ICON_BATTERY_LOW_CHARGING_SYMBOLIC,
-	ICON_BATTERY_LOW_SYMBOLIC,
-	ICON_BATTERY_MISSING,
-	ICON_BATTERY_MISSING_SYMBOLIC,
-	ICON_BLUETOOTH_ACTIVE_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED,
-	ICON_BLUETOOTH_DISABLED_10_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_20_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_30_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_40_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_50_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_60_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_70_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_80_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_90_SYMBOLIC,
-	ICON_BLUETOOTH_DISABLED_SYMBOLIC,
-	ICON_BLUETOOTH_PAIRED_SYMBOLIC,
-	ICON_CALL_MISSED_SYMBOLIC,
-	ICON_CHANGES_ALLOW,
-	ICON_CHANGES_ALLOW_SYMBOLIC,
-	ICON_CHANGES_PREVENT_SYMBOLIC,
-	ICON_CHANNEL_INSECURE_SYMBOLIC,
-	ICON_CHANNEL_SECURE_SYMBOLIC,
-	ICON_CHECK_ACTIVE_SYMBOLIC,
-	ICON_CHECK_MIXED_SYMBOLIC,
-	ICON_CHECKBOX_CHECKED_SYMBOLIC,
-	ICON_CHECKBOX_MIXED_SYMBOLIC,
-	ICON_CHECKBOX_SYMBOLIC,
-	ICON_COMPUTER_FAIL_SYMBOLIC,
-	ICON_CONTENT_LOADING_SYMBOLIC,
-	ICON_DAYTIME_SUNRISE_SYMBOLIC,
-	ICON_DAYTIME_SUNSET_SYMBOLIC,
-	ICON_DIALOG_ERROR,
-	ICON_DIALOG_ERROR_SYMBOLIC,
-	ICON_DIALOG_INFORMATION,
-	ICON_DIALOG_INFORMATION_SYMBOLIC,
-	ICON_DIALOG_PASSWORD,
-	ICON_DIALOG_PASSWORD_SYMBOLIC,
-	ICON_DIALOG_WARNING,
-	ICON_DIALOG_WARNING_SYMBOLIC,
-	ICON_DISPLAY_BRIGHTNESS_SYMBOLIC,
-	ICON_FOLDER_OPEN_SYMBOLIC,
-	ICON_FOLDER_VISITING_SYMBOLIC,
-	ICON_IMAGE_LOADING,
-	ICON_IMAGE_MISSING,
-	ICON_INPUT_KEYBOARD_CAPSLOCK_SYMBOLIC,
-	ICON_INPUT_KEYBOARD_NUMLOCK_SYMBOLIC,
-	ICON_KEYBOARD_BRIGHTNESS_SYMBOLIC,
-	ICON_LOCATION_ACTIVE_SYMBOLIC,
-	ICON_LOCATION_DISABLED_SYMBOLIC,
-	ICON_LOCATION_INACTIVE_SYMBOLIC,
-	ICON_LOCKED,
-	ICON_MAIL_ATTACHMENT_SYMBOLIC,
-	ICON_MAIL_FORWARDED_SYMBOLIC,
-	ICON_MAIL_IMPORTANT_SYMBOLIC,
-	ICON_MAIL_READ_SYMBOLIC,
-	ICON_MAIL_REPLIED_SYMBOLIC,
-	ICON_MAIL_UNREAD,
-	ICON_MAIL_UNREAD_SYMBOLIC,
-	ICON_MEDIA_PLAYLIST_CONSECUTIVE_SYMBOLIC,
-	ICON_MEDIA_PLAYLIST_NO_REPEAT_SYMBOLIC,
-	ICON_MEDIA_PLAYLIST_REPEAT,
-	ICON_MEDIA_PLAYLIST_REPEAT_SONG_SYMBOLIC,
-	ICON_MEDIA_PLAYLIST_REPEAT_SYMBOLIC,
-	ICON_MEDIA_PLAYLIST_SHUFFLE_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_HIGH_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_LOW_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MEDIUM_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_10_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_20_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_30_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_40_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_50_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_60_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_70_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_80_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_90_SYMBOLIC,
-	ICON_MICROPHONE_SENSITIVITY_MUTED_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_ACQUIRING_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_CONNECTED_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_NO_ROUTE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_OFFLINE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_EXCELLENT_SECURE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_EXCELLENT_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_GOOD_SECURE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_GOOD_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_NONE_SECURE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_NONE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_OK_SECURE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_OK_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_WEAK_SECURE_SYMBOLIC,
-	ICON_NETWORK_CELLULAR_SIGNAL_WEAK_SYMBOLIC,
-	ICON_NETWORK_ERROR,
-	ICON_NETWORK_ERROR_SYMBOLIC,
-	ICON_NETWORK_IDLE,
-	ICON_NETWORK_OFFLINE_SYMBOLIC,
-	ICON_NETWORK_VPN_ACQUIRING_SYMBOLIC,
-	ICON_NETWORK_VPN_LOCK_SYMBOLIC,
-	ICON_NETWORK_VPN_SYMBOLIC,
-	ICON_NETWORK_WIRED_ACQUIRING_SYMBOLIC,
-	ICON_NETWORK_WIRED_DISCONNECTED,
-	ICON_NETWORK_WIRED_NO_ROUTE_SYMBOLIC,
-	ICON_NETWORK_WIRED_OFFLINE_SYMBOLIC,
-	ICON_NETWORK_WIRED_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_ACQUIRING_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_CONNECTED_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_ENCRYPTED_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_HOTSPOT_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_NO_ROUTE_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_OFFLINE_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_EXCELLENT_SECURE_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_EXCELLENT_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_GOOD_SECURE_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_GOOD_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_NONE_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_OK_SECURE_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_OK_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_WEAK_SECURE_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SIGNAL_WEAK_SYMBOLIC,
-	ICON_NETWORK_WIRELESS_SYMBOLIC,
-	ICON_NIGHT_LIGHT,
-	ICON_NIGHT_LIGHT_DISABLED_10_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_20_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_30_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_40_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_50_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_60_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_70_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_80_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_90_SYMBOLIC,
-	ICON_NIGHT_LIGHT_DISABLED_SYMBOLIC,
-	ICON_NIGHT_LIGHT_SYMBOLIC,
-	ICON_NM_NO_CONNECTION,
-	ICON_NM_SIGNAL_0,
-	ICON_NM_SIGNAL_0_SECURE,
-	ICON_NM_SIGNAL_100,
-	ICON_NM_SIGNAL_100_SECURE,
-	ICON_NM_SIGNAL_25,
-	ICON_NM_SIGNAL_25_SECURE,
-	ICON_NM_SIGNAL_50,
-	ICON_NM_SIGNAL_50_SECURE,
-	ICON_NM_SIGNAL_75,
-	ICON_NM_SIGNAL_75_SECURE,
-	ICON_NM_VPN_ACTIVE_LOCK,
-	ICON_NM_VPN_LOCK,
-	ICON_NON_STARRED,
-	ICON_NON_STARRED_SYMBOLIC,
-	ICON_NOTIFICATION_AUDIO_VOLUME_HIGH,
-	ICON_NOTIFICATION_AUDIO_VOLUME_LOW,
-	ICON_NOTIFICATION_AUDIO_VOLUME_MEDIUM,
-	ICON_NOTIFICATION_AUDIO_VOLUME_MUTED,
-	ICON_NOTIFICATION_DEVICE_EJECT,
-	ICON_NOTIFICATION_DISABLED,
-	ICON_NOTIFICATION_DISABLED_10_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_20_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_30_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_40_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_50_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_60_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_70_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_80_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_90_SYMBOLIC,
-	ICON_NOTIFICATION_DISABLED_SYMBOLIC,
-	ICON_NOTIFICATION_DISPLAY_BRIGHTNESS,
-	ICON_NOTIFICATION_KEYBOARD_BRIGHTNESS,
-	ICON_NOTIFICATION_NETWORK_ETHERNET_DISCONNECTED,
-	ICON_NOTIFICATION_NETWORK_WIRED,
-	ICON_NOTIFICATION_NETWORK_WIRELESS,
-	ICON_NOTIFICATION_NETWORK_WIRELESS_DISCONNECTED,
-	ICON_NOTIFICATION_NETWORK_WIRELESS_DISCONNECTED_SYMBOLIC,
-	ICON_NOTIFICATION_NETWORK_WIRELESS_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_10_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_20_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_30_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_40_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_50_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_60_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_70_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_80_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_90_SYMBOLIC,
-	ICON_NOTIFICATION_NEW_SYMBOLIC,
-	ICON_NOTIFICATION_SYMBOLIC,
-	ICON_PAGER_CHECKED_SYMBOLIC,
-	ICON_PRINTER_ERROR,
-	ICON_PRINTER_ERROR_SYMBOLIC,
-	ICON_PRINTER_PRINTING_SYMBOLIC,
-	ICON_PRINTER_WARNING_SYMBOLIC,
-	ICON_PROCESS_COMPLETED,
-	ICON_PROCESS_COMPLETED_SYMBOLIC,
-	ICON_PROCESS_ERROR_SYMBOLIC,
-	ICON_PROCESS_WORKING_SYMBOLIC,
-	ICON_RADIO_CHECKED_SYMBOLIC,
-	ICON_RADIO_MIXED_SYMBOLIC,
-	ICON_RADIO_SYMBOLIC,
-	ICON_ROTATION_ALLOWED_SYMBOLIC,
-	ICON_ROTATION_LOCKED_SYMBOLIC,
-	ICON_SECURITY_HIGH,
-	ICON_SECURITY_HIGH_SYMBOLIC,
-	ICON_SECURITY_LOW,
-	ICON_SECURITY_LOW_SYMBOLIC,
-	ICON_SECURITY_MEDIUM,
-	ICON_SECURITY_MEDIUM_SYMBOLIC,
-	ICON_SEMI_STARRED,
-	ICON_SEMI_STARRED_SYMBOLIC,
-	ICON_SOFTWARE_UPDATE_AVAILABLE_SYMBOLIC,
-	ICON_SOFTWARE_UPDATE_URGENT_SYMBOLIC,
-	ICON_STARRED,
-	ICON_STARRED_SYMBOLIC,
-	ICON_TASK_DUE_SYMBOLIC,
-	ICON_TASK_PAST_DUE_SYMBOLIC,
-	ICON_TOUCHPAD_DISABLED_SYMBOLIC,
-	ICON_USER_AVAILABLE,
-	ICON_USER_AVAILABLE_SYMBOLIC,
-	ICON_USER_AWAY,
-	ICON_USER_AWAY_SYMBOLIC,
-	ICON_USER_BUSY,
-	ICON_USER_BUSY_SYMBOLIC,
-	ICON_USER_IDLE_SYMBOLIC,
-	ICON_USER_INVISIBLE,
-	ICON_USER_INVISIBLE_SYMBOLIC,
-	ICON_USER_OFFLINE,
-	ICON_USER_OFFLINE_SYMBOLIC,
-	ICON_USER_STATUS_PENDING_SYMBOLIC,
-	ICON_USER_TRASH_FULL_SYMBOLIC,
-	ICON_USER_TYPING,
-	ICON_VIEW_PRIVATE,
-	ICON_VIEW_PRIVATE_SYMBOLIC,
-	ICON_VIEW_WRAPPED_SYMBOLIC,
-	ICON_WEATHER_CLEAR_NIGHT_SYMBOLIC,
-	ICON_WEATHER_CLEAR_SYMBOLIC,
-	ICON_WEATHER_FEW_CLOUDS_NIGHT_SYMBOLIC,
-	ICON_WEATHER_FEW_CLOUDS_SYMBOLIC,
-	ICON_WEATHER_FOG_NIGHT_SYMBOLIC,
-	ICON_WEATHER_FOG_SYMBOLIC,
-	ICON_WEATHER_OVERCAST_NIGHT_SYMBOLIC,
-	ICON_WEATHER_OVERCAST_SYMBOLIC,
-	ICON_WEATHER_SEVERE_ALERT_SYMBOLIC,
-	ICON_WEATHER_SHOWERS_NIGHT_SYMBOLIC,
-	ICON_WEATHER_SHOWERS_SCATTERED_NIGHT_SYMBOLIC,
-	ICON_WEATHER_SHOWERS_SCATTERED_SYMBOLIC,
-	ICON_WEATHER_SHOWERS_SYMBOLIC,
-	ICON_WEATHER_SNOW_NIGHT_SYMBOLIC,
-	ICON_WEATHER_SNOW_SYMBOLIC,
-	ICON_WEATHER_STORM_NIGHT_SYMBOLIC,
-	ICON_WEATHER_STORM_SYMBOLIC,
-	ICON_WEATHER_STORM_TORNADO_NIGHT_SYMBOLIC,
-	ICON_WEATHER_STORM_TORNADO_SYMBOLIC,
-	ICON_WEATHER_WINDY_SYMBOLIC,
-}
-
-FatalError :: enum {
-	FATAL_ERROR_INVALID_BUFFER,
-	FATAL_ERROR_UNKNOWN_SYSCALL,
-	FATAL_ERROR_INVALID_MEMORY_REGION,
-	FATAL_ERROR_MEMORY_REGION_LOCKED_BY_KERNEL,
-	FATAL_ERROR_PATH_LENGTH_EXCEEDS_LIMIT,
-	FATAL_ERROR_INVALID_HANDLE,
-	FATAL_ERROR_MUTEX_NOT_ACQUIRED_BY_THREAD,
-	FATAL_ERROR_MUTEX_ALREADY_ACQUIRED,
-	FATAL_ERROR_BUFFER_NOT_ACCESSIBLE,
-	FATAL_ERROR_SHARED_MEMORY_REGION_TOO_LARGE,
-	FATAL_ERROR_SHARED_MEMORY_STILL_MAPPED,
-	FATAL_ERROR_COULD_NOT_LOAD_FONT,
-	FATAL_ERROR_COULD_NOT_DRAW_FONT,
-	FATAL_ERROR_COULD_NOT_ALLOCATE_MEMORY,
-	FATAL_ERROR_INCORRECT_FILE_ACCESS,
-	FATAL_ERROR_TOO_MANY_WAIT_OBJECTS,
-	FATAL_ERROR_INCORRECT_NODE_TYPE,
-	FATAL_ERROR_PROCESSOR_EXCEPTION,
-	FATAL_ERROR_UNKNOWN,
-	FATAL_ERROR_RECURSIVE_BATCH,
-	FATAL_ERROR_CORRUPT_HEAP,
-	FATAL_ERROR_CORRUPT_LINKED_LIST,
-	FATAL_ERROR_INDEX_OUT_OF_BOUNDS,
-	FATAL_ERROR_INVALID_STRING_LENGTH,
-	FATAL_ERROR_SPINLOCK_NOT_ACQUIRED,
-	FATAL_ERROR_UNKNOWN_SNAPSHOT_TYPE,
-	FATAL_ERROR_PROCESS_ALREADY_ATTACHED,
-	FATAL_ERROR_INTERNAL,
-	FATAL_ERROR_INSUFFICIENT_PERMISSIONS,
-	FATAL_ERROR_ABORT,
-	FATAL_ERROR_COUNT,
-}
-
-SyscallType :: enum {
-	SYSCALL_ALLOCATE,
-	SYSCALL_FREE,
-	SYSCALL_SHARE_MEMORY,
-	SYSCALL_MAP_OBJECT,
-	SYSCALL_OPEN_SHARED_MEMORY,
-	SYSCALL_CREATE_PROCESS,
-	SYSCALL_GET_CREATION_ARGUMENT,
-	SYSCALL_TERMINATE_THREAD,
-	SYSCALL_CREATE_THREAD,
-	SYSCALL_WAIT,
-	SYSCALL_TERMINATE_PROCESS,
-	SYSCALL_CREATE_EVENT,
-	SYSCALL_SET_EVENT,
-	SYSCALL_RESET_EVENT,
-	SYSCALL_POLL_EVENT,
-	SYSCALL_PAUSE_PROCESS,
-	SYSCALL_CRASH_PROCESS,
-	SYSCALL_GET_THREAD_ID,
-	SYSCALL_GET_PROCESS_STATE,
-	SYSCALL_YIELD_SCHEDULER,
-	SYSCALL_SLEEP,
-	SYSCALL_OPEN_PROCESS,
-	SYSCALL_SET_TLS,
-	SYSCALL_TIMER_SET,
-	SYSCALL_TIMER_CREATE,
-	SYSCALL_GET_PROCESS_STATUS,
-	SYSCALL_CREATE_SURFACE,
-	SYSCALL_GET_LINEAR_BUFFER,
-	SYSCALL_INVALIDATE_RECTANGLE,
-	SYSCALL_COPY_TO_SCREEN,
-	SYSCALL_FORCE_SCREEN_UPDATE,
-	SYSCALL_FILL_RECTANGLE,
-	SYSCALL_COPY_SURFACE,
-	SYSCALL_CLEAR_MODIFIED_REGION,
-	SYSCALL_DRAW_SURFACE,
-	SYSCALL_REDRAW_ALL,
-	SYSCALL_DRAW_BOX,
-	SYSCALL_DRAW_BITMAP,
-	SYSCALL_SURFACE_RESET,
-	SYSCALL_SURFACE_SHARE,
-	SYSCALL_DRAW_STYLED_BOX,
-	SYSCALL_SURFACE_SCROLL,
-	SYSCALL_RESIZE_SURFACE,
-	SYSCALL_GET_MESSAGE,
-	SYSCALL_POST_MESSAGE,
-	SYSCALL_POST_MESSAGE_REMOTE,
-	SYSCALL_WAIT_MESSAGE,
-	SYSCALL_CREATE_WINDOW,
-	SYSCALL_UPDATE_WINDOW,
-	SYSCALL_SET_CURSOR_STYLE,
-	SYSCALL_MOVE_WINDOW,
-	SYSCALL_GET_WINDOW_BOUNDS,
-	SYSCALL_RESET_CLICK_CHAIN,
-	SYSCALL_GET_CURSOR_POSITION,
-	SYSCALL_SET_CURSOR_POSITION,
-	SYSCALL_COPY,
-	SYSCALL_GET_CLIPBOARD_HEADER,
-	SYSCALL_PASTE_TEXT,
-	SYSCALL_SET_FOCUSED_WINDOW,
-	SYSCALL_SET_WINDOW_TITLE,
-	SYSCALL_GET_SCREEN_BOUNDS,
-	SYSCALL_WINDOW_OPEN,
-	SYSCALL_WINDOW_SET_BLEND_BOUNDS,
-	SYSCALL_WINDOW_GET_BLEND_BOUNDS,
-	SYSCALL_WINDOW_GET_ID,
-	SYSCALL_SET_WINDOW_ALPHA,
-	SYSCALL_DOCKED_WINDOW_CREATE,
-	SYSCALL_WINDOW_SHARE,
-	SYSCALL_SET_EMBED_WINDOW,
-	SYSCALL_OPEN_NODE,
-	SYSCALL_READ_FILE_SYNC,
-	SYSCALL_WRITE_FILE_SYNC,
-	SYSCALL_RESIZE_FILE,
-	SYSCALL_REFRESH_NODE_INFORMATION,
-	SYSCALL_ENUMERATE_DIRECTORY_CHILDREN,
-	SYSCALL_DELETE_NODE,
-	SYSCALL_MOVE_NODE,
-	SYSCALL_READ_CONSTANT_BUFFER,
-	SYSCALL_SHARE_CONSTANT_BUFFER,
-	SYSCALL_CREATE_CONSTANT_BUFFER,
-	SYSCALL_EXECUTE,
-	SYSCALL_INSTANCE_CREATE_REMOTE,
-	SYSCALL_MAILSLOT_SEND_DATA,
-	SYSCALL_MAILSLOT_SEND_MESSAGE,
-	SYSCALL_MAILSLOT_SHARE,
-	SYSCALL_PIPE_CREATE,
-	SYSCALL_PIPE_WRITE,
-	SYSCALL_PIPE_READ,
-	SYSCALL_USER_GET_HOME_FOLDER,
-	SYSCALL_USER_LOGIN,
-	SYSCALL_GET_SYSTEM_CONSTANTS,
-	SYSCALL_TAKE_SYSTEM_SNAPSHOT,
-	SYSCALL_SET_SYSTEM_CONSTANT,
-	SYSCALL_GET_SYSTEM_INFORMATION,
-	SYSCALL_PRINT,
-	SYSCALL_CLOSE_HANDLE,
-	SYSCALL_BATCH,
-	SYSCALL_SHUTDOWN,
-	SYSCALL_POSIX,
-	SYSCALL_COUNT,
-}
-
-StandardFont :: enum {
-	STANDARD_FONT_REGULAR,
-	STANDARD_FONT_BOLD,
-	STANDARD_FONT_MONOSPACED,
-}
-
-MessageType :: enum {
-	MESSAGE_WM_START =  0x1000,
-	MESSAGE_MOUSE_MOVED =  0x1001,
-	MESSAGE_WINDOW_ACTIVATED =  0x1003,
-	MESSAGE_WINDOW_DEACTIVATED =  0x1004,
-	MESSAGE_WINDOW_DESTROYED =  0x1005,
-	MESSAGE_MOUSE_EXIT =  0x1006 ,
-	MESSAGE_CLICK_REPEAT =  0x1009,
-	MESSAGE_WINDOW_RESIZED =  0x100B,
-	MESSAGE_MOUSE_LEFT_PRESSED =  0x100C ,
-	MESSAGE_MOUSE_LEFT_RELEASED =  0x100D,
-	MESSAGE_MOUSE_RIGHT_PRESSED =  0x100E,
-	MESSAGE_MOUSE_RIGHT_RELEASED =  0x100F,
-	MESSAGE_MOUSE_MIDDLE_PRESSED =  0x1010,
-	MESSAGE_MOUSE_MIDDLE_RELEASED =  0x1011 ,
-	MESSAGE_KEY_PRESSED =  0x1012,
-	MESSAGE_KEY_RELEASED =  0x1013,
-	MESSAGE_UPDATE_WINDOW =  0x1014,
-	MESSAGE_WM_END =  0x13FF,
-	MESSAGE_PAINT =  0x2000	,
-	MESSAGE_DESTROY =  0x2001	,
-	MESSAGE_MEASURE =  0x2002	,
-	MESSAGE_SIZE =  0x2003	,
-	MESSAGE_ADD_CHILD =  0x2004	,
-	MESSAGE_REMOVE_CHILD =  0x2005	,
-	MESSAGE_HIT_TEST =  0x2006	,
-	MESSAGE_HOVERED_START =  0x2007	,
-	MESSAGE_HOVERED_END =  0x2008	,
-	MESSAGE_PRESSED_START =  0x2009	,
-	MESSAGE_PRESSED_END =  0x200A	,
-	MESSAGE_FOCUSED_START =  0x200B	,
-	MESSAGE_FOCUSED_END =  0x200C	,
-	MESSAGE_FOCUS_WITHIN_START =  0x200D	,
-	MESSAGE_FOCUS_WITHIN_END =  0x200E	,
-	MESSAGE_Z_ORDER =  0x2010	,
-	MESSAGE_ANIMATE =  0x2011	,
-	MESSAGE_MOUSE_DRAGGED =  0x2012	,
-	MESSAGE_KEY_TYPED =  0x2013	,
-	MESSAGE_PAINT_BACKGROUND =  0x2014	,
-	MESSAGE_PAINT_FOREGROUND =  0x2015	,
-	MESSAGE_ENSURE_VISIBLE =  0x2016	,
-	MESSAGE_GET_CURSOR =  0x2017	,
-	MESSAGE_WINDOW_CREATED =  0x2018	,
-	MESSAGE_CLICKED =  0x3000	,
-	MESSAGE_SCROLLBAR_MOVED =  0x3001	,
-	MESSAGE_RECALCULATE_CONTENT_SIZE =  0x3002	,
-	MESSAGE_TEXTBOX_UPDATED =  0x3003	,
-	MESSAGE_DESKTOP_EXECUTE =  0x4800,
-	MESSAGE_POWER_BUTTON_PRESSED =  0x4801,
-	MESSAGE_TASKBAR_WINDOW_ADD =  0x4804,
-	MESSAGE_TASKBAR_WINDOW_REMOVE =  0x4805,
-	MESSAGE_TASKBAR_WINDOW_ACTIVATE =  0x4806,
-	MESSAGE_TASKBAR_WINDOW_SET_TITLE =  0x4807,
-	MESSAGE_DOCKED_WINDOW_CREATE =  0x4808,
-	MESSAGE_PROGRAM_CRASH =  0x4C00,
-	MESSAGE_PROGRAM_FAILED_TO_START =  0x4C01,
-	MESSAGE_RECEIVE_DATA =  0x5100,
-	MESSAGE_MAILSLOT_CLOSED =  0x5101,
-	MESSAGE_CLIPBOARD_UPDATED =  0x5001,
-	MESSAGE_SYSTEM_CONSTANT_UPDATED =  0x5004,
-	MESSAGE_TIMER =  0x5006,
-	MESSAGE_OBJECT_DESTROY =  0x5007,
-	MESSAGE_LIST_VIEW_GET_ITEM_CONTENT =  0x6000,
-	MESSAGE_LIST_VIEW_SET_ITEM_STATE =  0x6001,
-	MESSAGE_LIST_VIEW_GET_ITEM_STATE =  0x6002,
-	MESSAGE_LIST_VIEW_PAINT_ITEM =  0x6003 ,
-	MESSAGE_LIST_VIEW_PAINT_CELL =  0x6004 ,
-	MESSAGE_LIST_VIEW_SORT_COLUMN =  0x6005,
-	MESSAGE_LIST_VIEW_CHOOSE_ITEM =  0x6006,
-	MESSAGE_LIST_VIEW_FIND_ITEM =  0x6007,
-	MESSAGE_LIST_VIEW_TOGGLE_DISCLOSURE =  0x6008,
-	MESSAGE_LIST_VIEW_MEASURE_ITEM_HEIGHT =  0x6009,
-	MESSAGE_LIST_VIEW_LAYOUT_ITEM =  0x600A,
-	MESSAGE_LIST_VIEW_SET_ITEM_VISIBILITY =  0x600B,
-	MESSAGE_LIST_VIEW_RELAY_MESSAGE =  0x600C,
-	MESSAGE_LIST_VIEW_SET_ITEM_POSITION =  0x600D,
-	MESSAGE_PROGRAM_START =  0x7000,
-	MESSAGE_PROGRAM_EXIT =  0x7001,
-	MESSAGE_USER_START =  0x8000,
-	MESSAGE_USER_END =  0xBFFF,
-}
-
-DrawMode :: enum {
-	DRAW_MODE_REPEAT_FIRST =  1 ,
-	DRAW_MODE_STRECH,
-	DRAW_MODE_REPEAT,
-	DRAW_MODE_NONE,
-}
-
-ClipboardFormat :: enum {
-	CLIPBOARD_FORMAT_EMPTY,
-	CLIPBOARD_FORMAT_TEXT,
-	CLIPBOARD_FORMAT_FILE_LIST,
-}
-
-ColorFormat :: enum {
-	COLOR_FORMAT_32_XRGB,
-}
-
-CursorStyle :: enum {
-	CURSOR_NORMAL,
-	CURSOR_TEXT,
-	CURSOR_RESIZE_VERTICAL,
-	CURSOR_RESIZE_HORIZONTAL,
-	CURSOR_RESIZE_DIAGONAL_1,
-	CURSOR_RESIZE_DIAGONAL_2,
-	CURSOR_SPLIT_VERTICAL,
-	CURSOR_SPLIT_HORIZONTAL,
-	CURSOR_HAND_HOVER,
-	CURSOR_HAND_DRAG,
-	CURSOR_HAND_POINT,
-	CURSOR_SCROLL_UP_LEFT,
-	CURSOR_SCROLL_UP,
-	CURSOR_SCROLL_UP_RIGHT,
-	CURSOR_SCROLL_LEFT,
-	CURSOR_SCROLL_CENTER,
-	CURSOR_SCROLL_RIGHT,
-	CURSOR_SCROLL_DOWN_LEFT,
-	CURSOR_SCROLL_DOWN,
-	CURSOR_SCROLL_DOWN_RIGHT,
-	CURSOR_SELECT_LINES,
-	CURSOR_DROP_TEXT,
-	CURSOR_CROSS_HAIR_PICK,
-	CURSOR_CROSS_HAIR_RESIZE,
-	CURSOR_MOVE_HOVER,
-	CURSOR_MOVE_DRAG,
-	CURSOR_ROTATE_HOVER,
-	CURSOR_ROTATE_DRAG,
-	CURSOR_BLANK,
-}
-
-WindowStyle :: enum {
-	WINDOW_NORMAL,
-	WINDOW_CONTAINER,
-	WINDOW_MENU,
-}
-
-NODE_FILE :: 		(0);
-NODE_DIRECTORY :: 	(0x4000);
-NODE_INVALID :: 		(0x8000);
-BatchCall :: struct {
-	index :SyscallType,
-	stopBatchIfError :bool,
-	using _ : struct #raw_union {
-		argument0 :uintptr,
-		returnValue :uintptr,
-	},
-
-	argument1 :uintptr,
-	argument2 :uintptr,
-	argument3 :uintptr,
-}
-
-ThreadInformation :: struct {
-	handle :Handle,
-	tid :uintptr,
-}
-
-ProcessInformation :: struct {
-	handle :Handle,
-	pid :uintptr,
-	mainThread :ThreadInformation,
-}
-
-UniqueIdentifier :: struct {
-	using _ : struct #raw_union {
-		d :[16]u8,
-	},
-
-}
-
-NodeInformation :: struct {
-	handle :Handle,
-	type :NodeType,
-	fileSize :FileOffset,
-	directoryChildren :FileOffset,
-}
-
-DirectoryChild :: struct {
-	name :[MAX_DIRECTORY_CHILD_NAME_LENGTH]i8,
-	nameBytes :uintptr,
-	information :NodeInformation,
-}
-
-Point :: struct {
-	x :i32,
-	y :i32,
-}
-
-Rectangle :: struct {
-	left :i32,
-	right :i32,
-	top :i32,
-	bottom :i32,
-}
-
-Rectangle16 :: struct {
-	left :i16,
-	right :i16,
-	top :i16,
-	bottom :i16,
-}
-
-Color :: struct {
-	using _ : struct #raw_union {
-		using _ : struct {
-			blue :u8,
-			green :u8,
-			red :u8,
-		},
-
-		combined :u32,
-	},
-
-}
-
-LinearBuffer :: struct {
-	width :uintptr,
-	height :uintptr,
-	stride :uintptr,
-	colorFormat :ColorFormat,
-	handle :Handle,
-}
-
-RectangleAndColor :: struct {
-	rectangle :Rectangle,
-	color :Color,
-}
-
-StyledBoxData :: struct {
-	backgroundColor :u32,
-	borderColor :u32,
-	borders :Rectangle16,
-	cornerRadius :u8,
-	roundedCornersToExclude :u8,
-	ox :i32,
-	oy :i32,
-	width :i32,
-	height :i32,
-	clip :Rectangle,
-}
-
-InstanceCreateRemoteArguments :: struct {
-	what :^i8,
-	argument :^i8,
-	whatBytes :uintptr,
-	argumentBytes :uintptr,
-	modalWindowParent :Handle,
-	apiInstance :^rawptr,
-}
-
-DrawSurfaceArguments :: struct {
-	source :Rectangle,
-	destination :Rectangle,
-	border :Rectangle,
-	alpha :u16,
-}
-
-Spinlock :: struct {
-	state :u8,
-}
-
-Mutex :: struct {
-	event :Handle,
-	spinlock :Spinlock,
-	state :u8,
-	queued :u32,
-}
-
-CrashReason :: struct {
-	errorCode :Error,
-}
-
-ProcessState :: struct {
-	crashReason :CrashReason,
-	creationArgument :Generic,
-	id :uintptr,
-	executableState :uintptr,
-	flags :u8,
-}
-
-IORequestProgress :: struct {
-	accessed :FileOffset,
-	progress :FileOffset,
-	completed :bool,
-	cancelled :bool,
-	error :Error,
-}
-
-ClipboardHeader :: struct {
-	customBytes :uintptr,
-	format :ClipboardFormat,
-	textBytes :uintptr,
-	unused :uintptr,
-}
-
-Painter :: struct {
-	surface :Handle,
-	clip :Rectangle,
-	offsetX :i32,
-	offsetY :i32,
-	fullAlpha :bool,
-}
-
-Message :: struct {
-	type :MessageType,
-	_context :Generic,
-	using _ : struct #raw_union {
-		_argument :^rawptr,
-		mouseMoved : struct {
-			oldPositionX :i32,
-			newPositionX :i32,
-			oldPositionY :i32,
-			newPositionY :i32,
-			newPositionXScreen :i32,
-			newPositionYScreen :i32,
-		},
-
-		mouseDragged : struct {
-			oldPositionX :i32,
-			newPositionX :i32,
-			oldPositionY :i32,
-			newPositionY :i32,
-			originalPositionX :i32,
-			originalPositionY :i32,
-		},
+package os
 
-		mousePressed : struct {
-			positionX :i32,
-			positionY :i32,
-			positionXScreen :i32,
-			positionYScreen :i32,
-			clickChainCount :u8,
-			activationClick :u8,
-			alt :u8,
-			ctrl :u8,
-			shift :u8,
-		},
+import "core:sys/es"
 
-		keyboard : struct {
-			scancode :u32,
-			alt :u8,
-			ctrl :u8,
-			shift :u8,
-			numpad :u8,
-			notHandledBy :Object,
-		},
+Handle :: distinct int;
+Errno :: distinct int;
 
-		crash : struct {
-			reason :CrashReason,
-			process :Handle,
-			processNameBuffer :Handle,
-			processNameBytes :uintptr,
-			pid :uintptr,
-		},
+ERROR_NONE :: (Errno) (es.SUCCESS);
 
-		clipboard :ClipboardHeader,
-		receive : struct {
-			buffer :Handle,
-			bytes :uintptr,
-		},
+O_RDONLY :: 0x1;
+O_WRONLY :: 0x2;
+O_CREATE :: 0x4;
+O_TRUNC  :: 0x8;
 
-		animate : struct {
-			deltaMcs :i64,
-			waitMcs :i64,
-			complete :bool,
-		},
+stderr : Handle = 0; 
 
-		systemConstantUpdated : struct {
-			index :uintptr,
-			newValue :u64,
-		},
-
-		desktopExecute : struct {
-			whatBuffer :Handle,
-			argumentBuffer :Handle,
-			mailslot :Handle,
-			whatBytes :uintptr,
-			argumentBytes :uintptr,
-			modalWindowParent :u64,
-		},
-
-		dockedWindowCreate : struct {
-			pipe :Handle,
-		},
-
-		taskbar : struct {
-			id :u64,
-			buffer :Handle,
-			bytes :uintptr,
-		},
-
-		windowResized : struct {
-			content :Rectangle,
-		},
-
-		painter :^Painter,
-		measure : struct {
-			width :i32,
-			height :i32,
-		},
-
-		child :Object,
-		size : struct {
-			width :i32,
-			height :i32,
-		},
-
-		hitTest : struct {
-			x :i32,
-			y :i32,
-			inside :bool,
-		},
-
-		zOrder : struct {
-			index :uintptr,
-			child :^Element,
-		},
-
-		scrollbarMoved : struct {
-			scroll :i32,
-		},
-
-		ensureVisible : struct {
-			child :^Element,
-		},
-
-		cursorStyle :CursorStyle,
-		getItemContent : struct {
-			mask :u32,
-			index :ListViewIndex,
-			column :ListViewIndex,
-			group :ListViewIndex,
-			text :^i8,
-			textBytes :uintptr,
-			iconID :u16,
-			iconSize :u16,
-			indentation :u16,
-			spaceAfterIcon :u16,
-		},
-
-		accessItemState : struct {
-			mask :u32,
-			state :u32,
-			iIndexFrom :ListViewIndex,
-			eIndexTo :ListViewIndex,
-			group :ListViewIndex,
-		},
-
-		measureItemHeight : struct {
-			iIndexFrom :ListViewIndex,
-			eIndexTo :ListViewIndex,
-			group :ListViewIndex,
-			height :i32,
-		},
-
-		layoutItem : struct {
-			index :ListViewIndex,
-			group :ListViewIndex,
-			knownIndex :ListViewIndex,
-			knownGroup :ListViewIndex,
-			bounds :Rectangle,
-		},
-
-		toggleItemDisclosure : struct {
-			index :ListViewIndex,
-			group :ListViewIndex,
-		},
-
-		findItem : struct {
-			type :u8,
-			backwards :u8,
-			inclusive :bool,
-			indexFrom :ListViewIndex,
-			groupFrom :ListViewIndex,
-			foundIndex :ListViewIndex,
-			foundGroup :ListViewIndex,
-			using _ : struct #raw_union {
-				using _ : struct {
-					prefix :^i8,
-					prefixBytes :uintptr,
-				},
-
-				using _ : struct {
-					yPosition :i32,
-					yPositionOfIndexFrom :i32,
-					offsetIntoItem :i32,
-				},
-
-			},
-
-		},
-
-		listViewColumn : struct {
-			index :ListViewIndex,
-			descending :bool,
-		},
-
-		setItemVisibility : struct {
-			index :ListViewIndex,
-			group :ListViewIndex,
-			visible :bool,
-		},
-
-		setItemPosition : struct {
-			index :ListViewIndex,
-			group :ListViewIndex,
-			bounds :Rectangle,
-		},
-
-		listViewPaint : struct {
-			painter :^Painter,
-			width :i32,
-			height :i32,
-			index :ListViewIndex,
-			group :ListViewIndex,
-			column :ListViewIndex,
-		},
-
-	},
-
-}
-
-DebuggerMessage :: struct {
-	process :Handle,
-	reason :CrashReason,
-}
-
-DriveInformation :: struct {
-	name :[64]i8,
-	nameBytes :uintptr,
-	mountpoint :[256]i8,
-	mountpointBytes :uintptr,
-}
-
-SnapshotProcessesItem :: struct {
-	pid :i64,
-	memoryUsage :i64,
-	cpuTimeSlices :i64,
-	name :[SNAPSHOT_MAX_PROCESS_NAME_LENGTH]i8,
-	nameLength :uintptr,
-	internal :u64,
-}
-
-SystemInformation :: struct {
-	processCount :uintptr,
-	threadCount :uintptr,
-	handleCount :uintptr,
-	commitLimit :uintptr,
-	commit :uintptr,
-	countZeroedPages :uintptr,
-	countFreePages :uintptr,
-	countStandbyPages :uintptr,
-	countModifiedPages :uintptr,
-	countActivePages :uintptr,
-	coreHeapSize :uintptr,
-	coreHeapAllocations :uintptr,
-	fixedHeapSize :uintptr,
-	fixedHeapAllocations :uintptr,
-	coreRegions :uintptr,
-	kernelRegions :uintptr,
-}
-
-SnapshotProcesses :: struct {
-	count :uintptr,
-	processes :[]SnapshotProcessesItem,
-}
-
-POSIXSyscall :: struct {
-	index :int,
-	arguments :[7]int,
-}
-
-ProcessCreationArguments :: struct {
-	executablePath :^i8,
-	executablePathBytes :uintptr,
-	environmentBlock :^rawptr,
-	environmentBlockBytes :uintptr,
-	creationArgument :Generic,
-	permissions :u64,
-}
-
-UserLoginArguments :: struct {
-	name :^i8,
-	nameBytes :uintptr,
-	home :^i8,
-	homeBytes :uintptr,
-}
-
-Instance :: struct {
-	_private :^rawptr,
-}
-
-ListViewColumn :: struct {
-	title :^i8,
-	titleBytes :uintptr,
-	width :i32,
-	minimumWidth :i32,
-	flags :u32,
-}
-
-ListViewStyle :: struct {
-	fixedWidth :i32,
-	fixedHeight :i32,
-	groupHeaderHeight :i32,
-	gapX :i32,
-	gapY :i32,
-	margin :Rectangle16,
-	columns :^ListViewColumn,
-	columnCount :uintptr,
-	emptyMessage :^i8,
-	emptyMessageBytes :uintptr,
+current_thread_id :: proc "contextless" () -> int {
+	return (int) (es.ThreadGetID(es.CURRENT_THREAD));
 }
 
-NumericEntryProperties :: struct {
-	value :i32,
-	dp :i32,
-	delta :i32,
-	speed :i32,
-	minimum :i32,
-	maximum :i32,
-	cPrefix :^i8,
-	cSuffix :^i8,
+heap_alloc :: proc(size: int) -> rawptr {
+	return es.HeapAllocate(size, false);
 }
 
-Batch :: inline proc (calls :^BatchCall, count :uintptr){ addr := 0x1000 + 0 * size_of(int);  ((proc (^BatchCall, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(calls, count); }
-ProcessCreate :: inline proc (executablePath :^i8, executablePathLength :uintptr, information :^ProcessInformation, argument :Generic) -> Error{ addr := 0x1000 + 1 * size_of(int); return ((proc (^i8, uintptr, ^ProcessInformation, Generic) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(executablePath, executablePathLength, information, argument); }
-ThreadCreate :: inline proc (entryFunction :ThreadEntryFunction, information :^ThreadInformation, argument :Generic) -> Error{ addr := 0x1000 + 2 * size_of(int); return ((proc (ThreadEntryFunction, ^ThreadInformation, Generic) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(entryFunction, information, argument); }
-SurfaceCreate :: inline proc (width :uintptr, height :uintptr, flags :u32) -> Handle{ addr := 0x1000 + 3 * size_of(int); return ((proc (uintptr, uintptr, u32) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(width, height, flags); }
-EventCreate :: inline proc (autoReset :bool) -> Handle{ addr := 0x1000 + 4 * size_of(int); return ((proc (bool) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(autoReset); }
-ThreadLocalStorageSetAddress :: inline proc (address :^rawptr){ addr := 0x1000 + 5 * size_of(int);  ((proc (^rawptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(address); }
-ConstantBufferRead :: inline proc (constantBuffer :Handle, output :^rawptr){ addr := 0x1000 + 6 * size_of(int);  ((proc (Handle, ^rawptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(constantBuffer, output); }
-ConstantBufferShare :: inline proc (constantBuffer :Handle, targetProcess :Handle) -> Handle{ addr := 0x1000 + 7 * size_of(int); return ((proc (Handle, Handle) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(constantBuffer, targetProcess); }
-ConstantBufferCreate :: inline proc (data :^rawptr, dataBytes :uintptr, targetProcess :Handle) -> Handle{ addr := 0x1000 + 8 * size_of(int); return ((proc (^rawptr, uintptr, Handle) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(data, dataBytes, targetProcess); }
-ProcessOpen :: inline proc (pid :u64) -> Handle{ addr := 0x1000 + 9 * size_of(int); return ((proc (u64) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(pid); }
-HandleClose :: inline proc (handle :Handle) -> Error{ addr := 0x1000 + 10 * size_of(int); return ((proc (Handle) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(handle); }
-TakeSystemSnapshot :: inline proc (type :i32, bufferSize :^uintptr) -> Handle{ addr := 0x1000 + 11 * size_of(int); return ((proc (i32, ^uintptr) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(type, bufferSize); }
-GetSystemInformation :: inline proc (systemInformation :^SystemInformation){ addr := 0x1000 + 12 * size_of(int);  ((proc (^SystemInformation))(rawptr(((^uintptr)(uintptr(addr)))^)))(systemInformation); }
-NodeOpen :: inline proc (path :^i8, pathLength :uintptr, flags :u64, information :^NodeInformation) -> Error{ addr := 0x1000 + 13 * size_of(int); return ((proc (^i8, uintptr, u64, ^NodeInformation) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(path, pathLength, flags, information); }
-NodeFindUniqueName :: inline proc (buffer :^i8, originalBytes :uintptr, bufferBytes :uintptr) -> uintptr{ addr := 0x1000 + 14 * size_of(int); return ((proc (^i8, uintptr, uintptr) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(buffer, originalBytes, bufferBytes); }
-FileReadAll :: inline proc (filePath :^i8, filePathLength :uintptr, fileSize :^uintptr){ addr := 0x1000 + 15 * size_of(int);  ((proc (^i8, uintptr, ^uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(filePath, filePathLength, fileSize); }
-FileReadSync :: inline proc (file :Handle, offset :FileOffset, size :uintptr, buffer :^rawptr) -> uintptr{ addr := 0x1000 + 16 * size_of(int); return ((proc (Handle, FileOffset, uintptr, ^rawptr) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(file, offset, size, buffer); }
-FileWriteSync :: inline proc (file :Handle, offset :FileOffset, size :uintptr, buffer :^rawptr) -> uintptr{ addr := 0x1000 + 17 * size_of(int); return ((proc (Handle, FileOffset, uintptr, ^rawptr) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(file, offset, size, buffer); }
-FileResize :: inline proc (file :Handle, newSize :FileOffset) -> Error{ addr := 0x1000 + 18 * size_of(int); return ((proc (Handle, FileOffset) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(file, newSize); }
-NodeRefreshInformation :: inline proc (information :^NodeInformation){ addr := 0x1000 + 19 * size_of(int);  ((proc (^NodeInformation))(rawptr(((^uintptr)(uintptr(addr)))^)))(information); }
-DirectoryEnumerateChildren :: inline proc (directory :Handle, buffer :^DirectoryChild, bufferCount :uintptr) -> int{ addr := 0x1000 + 20 * size_of(int); return ((proc (Handle, ^DirectoryChild, uintptr) -> int)(rawptr(((^uintptr)(uintptr(addr)))^)))(directory, buffer, bufferCount); }
-NodeDelete :: inline proc (node :Handle) -> Error{ addr := 0x1000 + 21 * size_of(int); return ((proc (Handle) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(node); }
-NodeMove :: inline proc (node :Handle, newDirectory :Handle, newName :^i8, newNameLength :uintptr) -> Error{ addr := 0x1000 + 22 * size_of(int); return ((proc (Handle, Handle, ^i8, uintptr) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(node, newDirectory, newName, newNameLength); }
-ThreadTerminate :: inline proc (thread :Handle){ addr := 0x1000 + 23 * size_of(int);  ((proc (Handle))(rawptr(((^uintptr)(uintptr(addr)))^)))(thread); }
-ProcessTerminate :: inline proc (process :Handle, status :i32){ addr := 0x1000 + 24 * size_of(int);  ((proc (Handle, i32))(rawptr(((^uintptr)(uintptr(addr)))^)))(process, status); }
-ProcessTerminateCurrent :: inline proc (){ addr := 0x1000 + 25 * size_of(int);  ((proc ())(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-ProcessPause :: inline proc (process :Handle, resume :bool){ addr := 0x1000 + 26 * size_of(int);  ((proc (Handle, bool))(rawptr(((^uintptr)(uintptr(addr)))^)))(process, resume); }
-ProcessCrash :: inline proc (error :Error, message :^i8, messageBytes :uintptr){ addr := 0x1000 + 27 * size_of(int);  ((proc (Error, ^i8, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(error, message, messageBytes); }
-ThreadGetID :: inline proc (thread :Handle) -> uintptr{ addr := 0x1000 + 28 * size_of(int); return ((proc (Handle) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(thread); }
-ProcessGetID :: inline proc (process :Handle) -> uintptr{ addr := 0x1000 + 29 * size_of(int); return ((proc (Handle) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(process); }
-SpinlockRelease :: inline proc (spinlock :^Spinlock){ addr := 0x1000 + 30 * size_of(int);  ((proc (^Spinlock))(rawptr(((^uintptr)(uintptr(addr)))^)))(spinlock); }
-SpinlockAcquire :: inline proc (spinlock :^Spinlock){ addr := 0x1000 + 31 * size_of(int);  ((proc (^Spinlock))(rawptr(((^uintptr)(uintptr(addr)))^)))(spinlock); }
-MutexRelease :: inline proc (mutex :^Mutex){ addr := 0x1000 + 32 * size_of(int);  ((proc (^Mutex))(rawptr(((^uintptr)(uintptr(addr)))^)))(mutex); }
-MutexAcquire :: inline proc (mutex :^Mutex){ addr := 0x1000 + 33 * size_of(int);  ((proc (^Mutex))(rawptr(((^uintptr)(uintptr(addr)))^)))(mutex); }
-MutexDestroy :: inline proc (mutex :^Mutex){ addr := 0x1000 + 34 * size_of(int);  ((proc (^Mutex))(rawptr(((^uintptr)(uintptr(addr)))^)))(mutex); }
-SchedulerYield :: inline proc (){ addr := 0x1000 + 35 * size_of(int);  ((proc ())(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-EventSet :: inline proc (event :Handle){ addr := 0x1000 + 36 * size_of(int);  ((proc (Handle))(rawptr(((^uintptr)(uintptr(addr)))^)))(event); }
-EventReset :: inline proc (event :Handle){ addr := 0x1000 + 37 * size_of(int);  ((proc (Handle))(rawptr(((^uintptr)(uintptr(addr)))^)))(event); }
-EventPoll :: inline proc (event :Handle) -> Error{ addr := 0x1000 + 38 * size_of(int); return ((proc (Handle) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(event); }
-Wait :: inline proc (objects :^Handle, objectCount :uintptr, timeoutMs :uintptr) -> uintptr{ addr := 0x1000 + 39 * size_of(int); return ((proc (^Handle, uintptr, uintptr) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(objects, objectCount, timeoutMs); }
-Sleep :: inline proc (milliseconds :u64){ addr := 0x1000 + 40 * size_of(int);  ((proc (u64))(rawptr(((^uintptr)(uintptr(addr)))^)))(milliseconds); }
-MemoryOpen :: inline proc (size :uintptr, name :^i8, nameLength :uintptr, flags :u32) -> Handle{ addr := 0x1000 + 41 * size_of(int); return ((proc (uintptr, ^i8, uintptr, u32) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(size, name, nameLength, flags); }
-MemoryShare :: inline proc (sharedMemoryRegion :Handle, targetProcess :Handle, readOnly :bool) -> Handle{ addr := 0x1000 + 42 * size_of(int); return ((proc (Handle, Handle, bool) -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(sharedMemoryRegion, targetProcess, readOnly); }
-ObjectMap :: inline proc (object :Handle, offset :uintptr, size :uintptr, flags :u32){ addr := 0x1000 + 43 * size_of(int);  ((proc (Handle, uintptr, uintptr, u32))(rawptr(((^uintptr)(uintptr(addr)))^)))(object, offset, size, flags); }
-MemoryAllocate :: inline proc (size :uintptr){ addr := 0x1000 + 44 * size_of(int);  ((proc (uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(size); }
-MemoryFree :: inline proc (address :^rawptr) -> Error{ addr := 0x1000 + 45 * size_of(int); return ((proc (^rawptr) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(address); }
-GetCreationArgument :: inline proc (object :Handle) -> Generic{ addr := 0x1000 + 46 * size_of(int); return ((proc (Handle) -> Generic)(rawptr(((^uintptr)(uintptr(addr)))^)))(object); }
-ProcessGetState :: inline proc (process :Handle, state :^ProcessState){ addr := 0x1000 + 47 * size_of(int);  ((proc (Handle, ^ProcessState))(rawptr(((^uintptr)(uintptr(addr)))^)))(process, state); }
-SurfaceGetLinearBuffer :: inline proc (surface :Handle, linearBuffer :^LinearBuffer){ addr := 0x1000 + 48 * size_of(int);  ((proc (Handle, ^LinearBuffer))(rawptr(((^uintptr)(uintptr(addr)))^)))(surface, linearBuffer); }
-RectangleInvalidate :: inline proc (surface :Handle, rectangle :Rectangle){ addr := 0x1000 + 49 * size_of(int);  ((proc (Handle, Rectangle))(rawptr(((^uintptr)(uintptr(addr)))^)))(surface, rectangle); }
-CopyToScreen :: inline proc (source :Handle, point :Point, depth :u16){ addr := 0x1000 + 50 * size_of(int);  ((proc (Handle, Point, u16))(rawptr(((^uintptr)(uintptr(addr)))^)))(source, point, depth); }
-ForceScreenUpdate :: inline proc (){ addr := 0x1000 + 51 * size_of(int);  ((proc ())(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-DrawRectangle :: inline proc (surface :Handle, rectangle :Rectangle, color :Color){ addr := 0x1000 + 52 * size_of(int);  ((proc (Handle, Rectangle, Color))(rawptr(((^uintptr)(uintptr(addr)))^)))(surface, rectangle, color); }
-DrawRectangleClipped :: inline proc (surface :Handle, rectangle :Rectangle, color :Color, clipRegion :Rectangle){ addr := 0x1000 + 53 * size_of(int);  ((proc (Handle, Rectangle, Color, Rectangle))(rawptr(((^uintptr)(uintptr(addr)))^)))(surface, rectangle, color, clipRegion); }
-DrawSurfaceBlit :: inline proc (destination :Handle, source :Handle, destinationPoint :Point){ addr := 0x1000 + 54 * size_of(int);  ((proc (Handle, Handle, Point))(rawptr(((^uintptr)(uintptr(addr)))^)))(destination, source, destinationPoint); }
-DrawSurface :: inline proc (destination :Handle, source :Handle, destinationRegion :Rectangle, sourceRegion :Rectangle, borderRegion :Rectangle, mode :DrawMode, alpha :u16) -> Error{ addr := 0x1000 + 55 * size_of(int); return ((proc (Handle, Handle, Rectangle, Rectangle, Rectangle, DrawMode, u16) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(destination, source, destinationRegion, sourceRegion, borderRegion, mode, alpha); }
-DrawSurfaceClipped :: inline proc (destination :Handle, source :Handle, destinationRegion :Rectangle, sourceRegion :Rectangle, borderRegion :Rectangle, mode :DrawMode, alpha :u16, clipRegion :Rectangle) -> Error{ addr := 0x1000 + 56 * size_of(int); return ((proc (Handle, Handle, Rectangle, Rectangle, Rectangle, DrawMode, u16, Rectangle) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(destination, source, destinationRegion, sourceRegion, borderRegion, mode, alpha, clipRegion); }
-DrawBitmap :: inline proc (destination :Handle, destinationPoint :Point, bitmap :^rawptr, width :uintptr, height :uintptr, stride :uintptr, colorFormat :ColorFormat){ addr := 0x1000 + 57 * size_of(int);  ((proc (Handle, Point, ^rawptr, uintptr, uintptr, uintptr, ColorFormat))(rawptr(((^uintptr)(uintptr(addr)))^)))(destination, destinationPoint, bitmap, width, height, stride, colorFormat); }
-SurfaceClearInvalidatedRegion :: inline proc (surface :Handle){ addr := 0x1000 + 58 * size_of(int);  ((proc (Handle))(rawptr(((^uintptr)(uintptr(addr)))^)))(surface); }
-RectangleClip :: inline proc (parent :Rectangle, rectangle :Rectangle, output :^Rectangle) -> bool{ addr := 0x1000 + 59 * size_of(int); return ((proc (Rectangle, Rectangle, ^Rectangle) -> bool)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, rectangle, output); }
-DrawBox :: inline proc (surface :Handle, rectangle :Rectangle, style :u8, color :u32, clipRegion :Rectangle){ addr := 0x1000 + 60 * size_of(int);  ((proc (Handle, Rectangle, u8, u32, Rectangle))(rawptr(((^uintptr)(uintptr(addr)))^)))(surface, rectangle, style, color, clipRegion); }
-RedrawAll :: inline proc (){ addr := 0x1000 + 61 * size_of(int);  ((proc ())(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-MessagePost :: inline proc (message :^Message) -> Error{ addr := 0x1000 + 62 * size_of(int); return ((proc (^Message) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(message); }
-MessagePostRemote :: inline proc (process :Handle, message :^Message) -> Error{ addr := 0x1000 + 63 * size_of(int); return ((proc (Handle, ^Message) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(process, message); }
-ExtractArguments :: inline proc (string :^i8, bytes :uintptr, delimiterByte :u8, replacementDelimiter :u8, argvAllocated :uintptr, argv :^^i8, argc :^uintptr) -> bool{ addr := 0x1000 + 64 * size_of(int); return ((proc (^i8, uintptr, u8, u8, uintptr, ^^i8, ^uintptr) -> bool)(rawptr(((^uintptr)(uintptr(addr)))^)))(string, bytes, delimiterByte, replacementDelimiter, argvAllocated, argv, argc); }
-CStringLength :: inline proc (string :^i8) -> uintptr{ addr := 0x1000 + 65 * size_of(int); return ((proc (^i8) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(string); }
-StringLength :: inline proc (string :^i8, end :u8) -> uintptr{ addr := 0x1000 + 66 * size_of(int); return ((proc (^i8, u8) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(string, end); }
-MemoryCopy :: inline proc (destination :^rawptr, source :^rawptr, bytes :uintptr){ addr := 0x1000 + 67 * size_of(int);  ((proc (^rawptr, ^rawptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(destination, source, bytes); }
-MemoryMove :: inline proc (_start :^rawptr, _end :^rawptr, amount :int, zeroEmptySpace :bool){ addr := 0x1000 + 68 * size_of(int);  ((proc (^rawptr, ^rawptr, int, bool))(rawptr(((^uintptr)(uintptr(addr)))^)))(_start, _end, amount, zeroEmptySpace); }
-MemoryCopyReverse :: inline proc (_destination :^rawptr, _source :^rawptr, bytes :uintptr){ addr := 0x1000 + 69 * size_of(int);  ((proc (^rawptr, ^rawptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(_destination, _source, bytes); }
-MemoryZero :: inline proc (destination :^rawptr, bytes :uintptr){ addr := 0x1000 + 70 * size_of(int);  ((proc (^rawptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(destination, bytes); }
-MemoryCompare :: inline proc (a :^rawptr, b :^rawptr, bytes :uintptr) -> i32{ addr := 0x1000 + 71 * size_of(int); return ((proc (^rawptr, ^rawptr, uintptr) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(a, b, bytes); }
-MemorySumBytes :: inline proc (data :^u8, bytes :uintptr) -> u8{ addr := 0x1000 + 72 * size_of(int); return ((proc (^u8, uintptr) -> u8)(rawptr(((^uintptr)(uintptr(addr)))^)))(data, bytes); }
-PrintDirect :: inline proc (string :^i8, stringLength :uintptr){ addr := 0x1000 + 73 * size_of(int);  ((proc (^i8, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(string, stringLength); }
-StringFormat :: inline proc (buffer :^i8, bufferLength :uintptr, format :^i8, args : ..any) -> uintptr{ addr := 0x1000 + 74 * size_of(int); return ((proc (^i8, uintptr, ^i8, ..any) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(buffer, bufferLength, format, ); }
-StringFormatAppend :: inline proc (buffer :^i8, bufferLength :uintptr, bufferPosition :^uintptr, format :^i8, args : ..any){ addr := 0x1000 + 75 * size_of(int);  ((proc (^i8, uintptr, ^uintptr, ^i8, ..any))(rawptr(((^uintptr)(uintptr(addr)))^)))(buffer, bufferLength, bufferPosition, format, ); }
-PrintHelloWorld :: inline proc (){ addr := 0x1000 + 76 * size_of(int);  ((proc ())(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-GetRandomByte :: inline proc () -> u8{ addr := 0x1000 + 77 * size_of(int); return ((proc () -> u8)(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-Sort :: inline proc (_base :^rawptr, nmemb :uintptr, size :uintptr, compar :ComparisonCallbackFunction, argument :Generic){ addr := 0x1000 + 78 * size_of(int);  ((proc (^rawptr, uintptr, uintptr, ComparisonCallbackFunction, Generic))(rawptr(((^uintptr)(uintptr(addr)))^)))(_base, nmemb, size, compar, argument); }
-SortWithSwapCallback :: inline proc (_base :^rawptr, nmemb :uintptr, size :uintptr, compar :ComparisonCallbackFunction, argument :Generic, swap :SwapCallbackFunction){ addr := 0x1000 + 79 * size_of(int);  ((proc (^rawptr, uintptr, uintptr, ComparisonCallbackFunction, Generic, SwapCallbackFunction))(rawptr(((^uintptr)(uintptr(addr)))^)))(_base, nmemb, size, compar, argument, swap); }
-StringCompare :: inline proc (s1 :^i8, s2 :^i8, length1 :uintptr, length2 :uintptr) -> i32{ addr := 0x1000 + 80 * size_of(int); return ((proc (^i8, ^i8, uintptr, uintptr) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(s1, s2, length1, length2); }
-IntegerParse :: inline proc (text :^i8, bytes :uintptr) -> i64{ addr := 0x1000 + 81 * size_of(int); return ((proc (^i8, uintptr) -> i64)(rawptr(((^uintptr)(uintptr(addr)))^)))(text, bytes); }
-CRTmemset :: inline proc (s :^rawptr, c :i32, n :uintptr){ addr := 0x1000 + 82 * size_of(int);  ((proc (^rawptr, i32, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(s, c, n); }
-CRTmemcpy :: inline proc (dest :^rawptr, src :^rawptr, n :uintptr){ addr := 0x1000 + 83 * size_of(int);  ((proc (^rawptr, ^rawptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(dest, src, n); }
-CRTmemmove :: inline proc (dest :^rawptr, src :^rawptr, n :uintptr){ addr := 0x1000 + 84 * size_of(int);  ((proc (^rawptr, ^rawptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(dest, src, n); }
-CRTstrlen :: inline proc (s :^i8) -> uintptr{ addr := 0x1000 + 85 * size_of(int); return ((proc (^i8) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(s); }
-CRTstrnlen :: inline proc (s :^i8, maxlen :uintptr) -> uintptr{ addr := 0x1000 + 86 * size_of(int); return ((proc (^i8, uintptr) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(s, maxlen); }
-CRTmalloc :: inline proc (size :uintptr){ addr := 0x1000 + 87 * size_of(int);  ((proc (uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(size); }
-CRTcalloc :: inline proc (num :uintptr, size :uintptr){ addr := 0x1000 + 88 * size_of(int);  ((proc (uintptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(num, size); }
-CRTfree :: inline proc (ptr :^rawptr){ addr := 0x1000 + 89 * size_of(int);  ((proc (^rawptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(ptr); }
-CRTabs :: inline proc (n :i32) -> i32{ addr := 0x1000 + 90 * size_of(int); return ((proc (i32) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(n); }
-CRTrealloc :: inline proc (ptr :^rawptr, size :uintptr){ addr := 0x1000 + 91 * size_of(int);  ((proc (^rawptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(ptr, size); }
-CRTgetenv :: inline proc (name :^i8) -> ^i8{ addr := 0x1000 + 92 * size_of(int); return ((proc (^i8) -> ^i8)(rawptr(((^uintptr)(uintptr(addr)))^)))(name); }
-CRTstrncmp :: inline proc (s1 :^i8, s2 :^i8, n :uintptr) -> i32{ addr := 0x1000 + 93 * size_of(int); return ((proc (^i8, ^i8, uintptr) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(s1, s2, n); }
-CRTmemcmp :: inline proc (s1 :^rawptr, s2 :^rawptr, n :uintptr) -> i32{ addr := 0x1000 + 94 * size_of(int); return ((proc (^rawptr, ^rawptr, uintptr) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(s1, s2, n); }
-CRTqsort :: inline proc (_base :^rawptr, nmemb :uintptr, size :uintptr, compar :CRTComparisonCallback){ addr := 0x1000 + 95 * size_of(int);  ((proc (^rawptr, uintptr, uintptr, CRTComparisonCallback))(rawptr(((^uintptr)(uintptr(addr)))^)))(_base, nmemb, size, compar); }
-CRTstrcmp :: inline proc (s1 :^i8, s2 :^i8) -> i32{ addr := 0x1000 + 96 * size_of(int); return ((proc (^i8, ^i8) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(s1, s2); }
-CRTstrstr :: inline proc (haystack :^i8, needle :^i8) -> ^i8{ addr := 0x1000 + 97 * size_of(int); return ((proc (^i8, ^i8) -> ^i8)(rawptr(((^uintptr)(uintptr(addr)))^)))(haystack, needle); }
-CRTstrcpy :: inline proc (dest :^i8, src :^i8) -> ^i8{ addr := 0x1000 + 98 * size_of(int); return ((proc (^i8, ^i8) -> ^i8)(rawptr(((^uintptr)(uintptr(addr)))^)))(dest, src); }
-CRTisalpha :: inline proc (c :i32) -> i32{ addr := 0x1000 + 99 * size_of(int); return ((proc (i32) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(c); }
-CRTmemchr :: inline proc (_s :^rawptr, _c :i32, n :uintptr){ addr := 0x1000 + 100 * size_of(int);  ((proc (^rawptr, i32, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(_s, _c, n); }
-CRTisdigit :: inline proc (c :i32) -> i32{ addr := 0x1000 + 101 * size_of(int); return ((proc (i32) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(c); }
-CRTstrcat :: inline proc (dest :^i8, src :^i8) -> ^i8{ addr := 0x1000 + 102 * size_of(int); return ((proc (^i8, ^i8) -> ^i8)(rawptr(((^uintptr)(uintptr(addr)))^)))(dest, src); }
-CRTtolower :: inline proc (c :i32) -> i32{ addr := 0x1000 + 103 * size_of(int); return ((proc (i32) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(c); }
-CRTstrncpy :: inline proc (dest :^i8, src :^i8, n :uintptr) -> ^i8{ addr := 0x1000 + 104 * size_of(int); return ((proc (^i8, ^i8, uintptr) -> ^i8)(rawptr(((^uintptr)(uintptr(addr)))^)))(dest, src, n); }
-CRTstrtoul :: inline proc (nptr :^i8, endptr :^^i8, base :i32) -> u64{ addr := 0x1000 + 105 * size_of(int); return ((proc (^i8, ^^i8, i32) -> u64)(rawptr(((^uintptr)(uintptr(addr)))^)))(nptr, endptr, base); }
-Execute :: inline proc (what :^i8, whatBytes :uintptr, argument :^i8, argumentBytes :uintptr){ addr := 0x1000 + 106 * size_of(int);  ((proc (^i8, uintptr, ^i8, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(what, whatBytes, argument, argumentBytes); }
-Abort :: inline proc (){ addr := 0x1000 + 107 * size_of(int);  ((proc ())(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-MailslotSendData :: inline proc (mailslot :Handle, data :^rawptr, bytes :uintptr) -> bool{ addr := 0x1000 + 108 * size_of(int); return ((proc (Handle, ^rawptr, uintptr) -> bool)(rawptr(((^uintptr)(uintptr(addr)))^)))(mailslot, data, bytes); }
-CRTfloorf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 109 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTceilf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 110 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTsinf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 111 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTcosf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 112 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTatan2f :: inline proc (y :f32, x :f32) -> f32{ addr := 0x1000 + 113 * size_of(int); return ((proc (f32, f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(y, x); }
-CRTfmodf :: inline proc (x :f32, y :f32) -> f32{ addr := 0x1000 + 114 * size_of(int); return ((proc (f32, f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x, y); }
-CRTacosf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 115 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTasinf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 116 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTatanf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 117 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-RandomSeed :: inline proc (x :u64){ addr := 0x1000 + 118 * size_of(int);  ((proc (u64))(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTsqrtf :: inline proc (x :f32) -> f32{ addr := 0x1000 + 119 * size_of(int); return ((proc (f32) -> f32)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTsqrtl :: inline proc (x :LongDouble) -> LongDouble{ addr := 0x1000 + 120 * size_of(int); return ((proc (LongDouble) -> LongDouble)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-CRTfabsl :: inline proc (x :LongDouble) -> LongDouble{ addr := 0x1000 + 121 * size_of(int); return ((proc (LongDouble) -> LongDouble)(rawptr(((^uintptr)(uintptr(addr)))^)))(x); }
-Syscall :: inline proc (a :uintptr, b :uintptr, c :uintptr, d :uintptr, e :uintptr, f :uintptr) -> uintptr{ addr := 0x1000 + 122 * size_of(int); return ((proc (uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(a, b, c, d, e, f); }
-ProcessorReadTimeStamp :: inline proc () -> u64{ addr := 0x1000 + 123 * size_of(int); return ((proc () -> u64)(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-HeapAllocate :: inline proc (size :uintptr, zeroMemory :bool){ addr := 0x1000 + 124 * size_of(int);  ((proc (uintptr, bool))(rawptr(((^uintptr)(uintptr(addr)))^)))(size, zeroMemory); }
-HeapFree :: inline proc (address :^rawptr){ addr := 0x1000 + 125 * size_of(int);  ((proc (^rawptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(address); }
-Print :: inline proc (format :^i8, args : ..any){ addr := 0x1000 + 126 * size_of(int);  ((proc (^i8, ..any))(rawptr(((^uintptr)(uintptr(addr)))^)))(format, ); }
-MemoryFill :: inline proc (from :^rawptr, to :^rawptr, byte :u8){ addr := 0x1000 + 127 * size_of(int);  ((proc (^rawptr, ^rawptr, u8))(rawptr(((^uintptr)(uintptr(addr)))^)))(from, to, byte); }
-InitialiseCStandardLibrary :: inline proc (argc :^i32, argv :^^^i8){ addr := 0x1000 + 128 * size_of(int);  ((proc (^i32, ^^^i8))(rawptr(((^uintptr)(uintptr(addr)))^)))(argc, argv); }
-MakeLinuxSystemCall2 :: inline proc (n :int, a1 :int, a2 :int, a3 :int, a4 :int, a5 :int, a6 :int) -> int{ addr := 0x1000 + 129 * size_of(int); return ((proc (int, int, int, int, int, int, int) -> int)(rawptr(((^uintptr)(uintptr(addr)))^)))(n, a1, a2, a3, a4, a5, a6); }
-ProcessCreate2 :: inline proc (arguments :^ProcessCreationArguments, information :^ProcessInformation) -> Error{ addr := 0x1000 + 130 * size_of(int); return ((proc (^ProcessCreationArguments, ^ProcessInformation) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(arguments, information); }
-CRTatoi :: inline proc (string :^i8) -> i32{ addr := 0x1000 + 131 * size_of(int); return ((proc (^i8) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(string); }
-ProcessGetExitStatus :: inline proc (process :Handle) -> i32{ addr := 0x1000 + 132 * size_of(int); return ((proc (Handle) -> i32)(rawptr(((^uintptr)(uintptr(addr)))^)))(process); }
-SurfaceReset :: inline proc (surface :Handle){ addr := 0x1000 + 133 * size_of(int);  ((proc (Handle))(rawptr(((^uintptr)(uintptr(addr)))^)))(surface); }
-TimerCreate :: inline proc () -> Handle{ addr := 0x1000 + 134 * size_of(int); return ((proc () -> Handle)(rawptr(((^uintptr)(uintptr(addr)))^)))(); }
-TimerSet :: inline proc (handle :Handle, afterMs :u64, object :Object, argument :Generic){ addr := 0x1000 + 135 * size_of(int);  ((proc (Handle, u64, Object, Generic))(rawptr(((^uintptr)(uintptr(addr)))^)))(handle, afterMs, object, argument); }
-FileWriteAll :: inline proc (filePath :^i8, filePathLength :uintptr, data :^rawptr, fileSize :uintptr) -> Error{ addr := 0x1000 + 136 * size_of(int); return ((proc (^i8, uintptr, ^rawptr, uintptr) -> Error)(rawptr(((^uintptr)(uintptr(addr)))^)))(filePath, filePathLength, data, fileSize); }
-UserGetHomeFolder :: inline proc (buffer :^i8, bufferBytes :uintptr) -> uintptr{ addr := 0x1000 + 137 * size_of(int); return ((proc (^i8, uintptr) -> uintptr)(rawptr(((^uintptr)(uintptr(addr)))^)))(buffer, bufferBytes); }
-Assert :: inline proc (expression :bool, failureMessage :^i8){ addr := 0x1000 + 138 * size_of(int);  ((proc (bool, ^i8))(rawptr(((^uintptr)(uintptr(addr)))^)))(expression, failureMessage); }
-ResizeArray :: inline proc (array :^^rawptr, allocated :^uintptr, needed :uintptr, itemSize :uintptr){ addr := 0x1000 + 139 * size_of(int);  ((proc (^^rawptr, ^uintptr, uintptr, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(array, allocated, needed, itemSize); }
-MessageLoopEnter :: inline proc (callback :MessageCallbackFunction = nil){ addr := 0x1000 + 140 * size_of(int);  ((proc (MessageCallbackFunction))(rawptr(((^uintptr)(uintptr(addr)))^)))(callback); }
-InstanceCreate :: inline proc (bytes :uintptr) -> ^Instance{ addr := 0x1000 + 141 * size_of(int); return ((proc (uintptr) -> ^Instance)(rawptr(((^uintptr)(uintptr(addr)))^)))(bytes); }
-MouseGetPosition :: inline proc (relativeWindow :^Window = nil) -> Point{ addr := 0x1000 + 142 * size_of(int); return ((proc (^Window) -> Point)(rawptr(((^uintptr)(uintptr(addr)))^)))(relativeWindow); }
-MouseSetPosition :: inline proc (relativeWindow :^Window, x :i32, y :i32){ addr := 0x1000 + 143 * size_of(int);  ((proc (^Window, i32, i32))(rawptr(((^uintptr)(uintptr(addr)))^)))(relativeWindow, x, y); }
-NewPanel :: inline proc (parent :^Element, cStyle :^i8, flags :u64 = FLAGS_DEFAULT) -> ^Panel{ addr := 0x1000 + 144 * size_of(int); return ((proc (^Element, ^i8, u64) -> ^Panel)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, cStyle, flags); }
-NewCustomPanel :: inline proc (parent :^Element, style :Data, flags :u64 = FLAGS_DEFAULT) -> ^Panel{ addr := 0x1000 + 145 * size_of(int); return ((proc (^Element, Data, u64) -> ^Panel)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, style, flags); }
-NewWindow :: inline proc (instance :^Instance, style :WindowStyle = WindowStyle.WINDOW_NORMAL) -> ^Window{ addr := 0x1000 + 146 * size_of(int); return ((proc (^Instance, WindowStyle) -> ^Window)(rawptr(((^uintptr)(uintptr(addr)))^)))(instance, style); }
-NewScrollbar :: inline proc (parent :^Element, flags :u64 = FLAGS_DEFAULT, userCallback :UICallbackFunction = nil, _context :Generic = nil) -> ^Scrollbar{ addr := 0x1000 + 147 * size_of(int); return ((proc (^Element, u64, UICallbackFunction, Generic) -> ^Scrollbar)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, flags, userCallback, _context); }
-NewButton :: inline proc (parent :^Element, label :^i8 = nil, labelBytes :int = -1, flags :u64 = FLAGS_DEFAULT, userCallback :UICallbackFunction = nil, _context :Generic = nil) -> ^Button{ addr := 0x1000 + 148 * size_of(int); return ((proc (^Element, ^i8, int, u64, UICallbackFunction, Generic) -> ^Button)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, label, labelBytes, flags, userCallback, _context); }
-NewTextbox :: inline proc (parent :^Element, flags :u64 = FLAGS_DEFAULT, userCallback :UICallbackFunction = nil, _context :Generic = nil) -> ^Textbox{ addr := 0x1000 + 149 * size_of(int); return ((proc (^Element, u64, UICallbackFunction, Generic) -> ^Textbox)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, flags, userCallback, _context); }
-NewNumericEntry :: inline proc (parent :^Element, flags :u64 = FLAGS_DEFAULT, userCallback :UICallbackFunction = nil, _context :Generic = nil) -> ^NumericEntry{ addr := 0x1000 + 150 * size_of(int); return ((proc (^Element, u64, UICallbackFunction, Generic) -> ^NumericEntry)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, flags, userCallback, _context); }
-NewListView :: inline proc (parent :^Element, flags :u64 = FLAGS_DEFAULT, style :^ListViewStyle = nil, userCallback :UICallbackFunction = nil, _context :Generic = nil) -> ^ListView{ addr := 0x1000 + 151 * size_of(int); return ((proc (^Element, u64, ^ListViewStyle, UICallbackFunction, Generic) -> ^ListView)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, flags, style, userCallback, _context); }
-NewMenu :: inline proc (parent :^Element, flags :u64 = FLAGS_DEFAULT, userCallback :MenuCallbackFunction = nil, _context :Generic = nil) -> ^Menu{ addr := 0x1000 + 152 * size_of(int); return ((proc (^Element, u64, MenuCallbackFunction, Generic) -> ^Menu)(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, flags, userCallback, _context); }
-NewMenuItem :: inline proc (parent :^Element, flags :u64, label :^i8, labelBytes :int = -1, callback :MenuCallbackFunction = nil, _context :Generic = nil){ addr := 0x1000 + 153 * size_of(int);  ((proc (^Element, u64, ^i8, int, MenuCallbackFunction, Generic))(rawptr(((^uintptr)(uintptr(addr)))^)))(parent, flags, label, labelBytes, callback, _context); }
-ElementGetInstance :: inline proc (element :^Element) -> ^INSTANCE_TYPE{ addr := 0x1000 + 154 * size_of(int); return ((proc (^Element) -> ^INSTANCE_TYPE)(rawptr(((^uintptr)(uintptr(addr)))^)))(element); }
-ElementFocus :: inline proc (element :^Element, ensureVisible :bool){ addr := 0x1000 + 155 * size_of(int);  ((proc (^Element, bool))(rawptr(((^uintptr)(uintptr(addr)))^)))(element, ensureVisible); }
-ElementSetDisabled :: inline proc (element :^Element, disabled :bool){ addr := 0x1000 + 156 * size_of(int);  ((proc (^Element, bool))(rawptr(((^uintptr)(uintptr(addr)))^)))(element, disabled); }
-ElementSetCallback :: inline proc (element :^Element, callback :UICallbackFunction, _context :Generic){ addr := 0x1000 + 157 * size_of(int);  ((proc (^Element, UICallbackFunction, Generic))(rawptr(((^uintptr)(uintptr(addr)))^)))(element, callback, _context); }
-ScrollbarSetMeasurements :: inline proc (scrollbar :^Scrollbar, viewportSize :i32, contentSize :i32){ addr := 0x1000 + 158 * size_of(int);  ((proc (^Scrollbar, i32, i32))(rawptr(((^uintptr)(uintptr(addr)))^)))(scrollbar, viewportSize, contentSize); }
-ScrollbarSetPosition :: inline proc (scrollbar :^Scrollbar, position :f32, sendMovedMessage :bool, smoothScroll :bool){ addr := 0x1000 + 159 * size_of(int);  ((proc (^Scrollbar, f32, bool, bool))(rawptr(((^uintptr)(uintptr(addr)))^)))(scrollbar, position, sendMovedMessage, smoothScroll); }
-WindowGetBounds :: inline proc (window :^Window) -> Rectangle{ addr := 0x1000 + 160 * size_of(int); return ((proc (^Window) -> Rectangle)(rawptr(((^uintptr)(uintptr(addr)))^)))(window); }
-WindowGetToolbar :: inline proc (window :^Window) -> ^Element{ addr := 0x1000 + 161 * size_of(int); return ((proc (^Window) -> ^Element)(rawptr(((^uintptr)(uintptr(addr)))^)))(window); }
-ListViewInsert :: inline proc (listView :^ListView, group :ListViewIndex, index :ListViewIndex, count :uintptr){ addr := 0x1000 + 162 * size_of(int);  ((proc (^ListView, ListViewIndex, ListViewIndex, uintptr))(rawptr(((^uintptr)(uintptr(addr)))^)))(listView, group, index, count); }
-ListViewInsertGroup :: inline proc (listView :^ListView, group :ListViewIndex){ addr := 0x1000 + 163 * size_of(int);  ((proc (^ListView, ListViewIndex))(rawptr(((^uintptr)(uintptr(addr)))^)))(listView, group); }
-ListViewRemove :: inline proc (listView :^ListView, group :ListViewIndex, index :ListViewIndex, count :int, removedHeight :i32){ addr := 0x1000 + 164 * size_of(int);  ((proc (^ListView, ListViewIndex, ListViewIndex, int, i32))(rawptr(((^uintptr)(uintptr(addr)))^)))(listView, group, index, count, removedHeight); }
-ListViewRemoveGroup :: inline proc (listView :^ListView, group :ListViewIndex){ addr := 0x1000 + 165 * size_of(int);  ((proc (^ListView, ListViewIndex))(rawptr(((^uintptr)(uintptr(addr)))^)))(listView, group); }
-ListViewInvalidate :: inline proc (listView :^ListView, deltaHeight :i32, recalculateHeight :bool){ addr := 0x1000 + 166 * size_of(int);  ((proc (^ListView, i32, bool))(rawptr(((^uintptr)(uintptr(addr)))^)))(listView, deltaHeight, recalculateHeight); }
-ListViewEnsureVisible :: inline proc (listView :^ListView, group :ListViewIndex, index :ListViewIndex){ addr := 0x1000 + 167 * size_of(int);  ((proc (^ListView, ListViewIndex, ListViewIndex))(rawptr(((^uintptr)(uintptr(addr)))^)))(listView, group, index); }
-ListViewResetSearchBuffer :: inline proc (listView :^ListView){ addr := 0x1000 + 168 * size_of(int);  ((proc (^ListView))(rawptr(((^uintptr)(uintptr(addr)))^)))(listView); }
-ButtonSetIcon :: inline proc (button :^Button, iconID :u32){ addr := 0x1000 + 169 * size_of(int);  ((proc (^Button, u32))(rawptr(((^uintptr)(uintptr(addr)))^)))(button, iconID); }
-DataParse :: inline proc (cFormat :^i8, args : ..any) -> Data{ addr := 0x1000 + 170 * size_of(int); return ((proc (^i8, ..any) -> Data)(rawptr(((^uintptr)(uintptr(addr)))^)))(cFormat, ); }
-
-
-//////////////////////////////////////////////////////
-
-Errno  :: distinct i32;
-
-stdin:  Handle = 0;
-stdout: Handle = 1;
-stderr: Handle = 2;
-
-O_RDONLY   :: 0x00000;
-O_WRONLY   :: 0x00001;
-O_RDWR     :: 0x00002;
-O_CREATE   :: 0x00040;
-O_EXCL     :: 0x00080;
-O_NOCTTY   :: 0x00100;
-O_TRUNC    :: 0x00200;
-O_NONBLOCK :: 0x00800;
-O_APPEND   :: 0x00400;
-O_SYNC     :: 0x01000;
-O_ASYNC    :: 0x02000;
-O_CLOEXEC  :: 0x80000;
-
-ERROR_SUCCESS :: 0;
-ERROR_UNSUPPORTED :: 1;
-
-read :: proc(fd: Handle, data: []byte) -> (int, Errno) {
-	return -1, ERROR_UNSUPPORTED;
+heap_free :: proc(ptr: rawptr) {
+	es.HeapFree(ptr);
 }
 
-write :: proc(fd: Handle, data: []byte) -> (int, Errno) {
-	if (fd == stdout) {
-		PrintDirect((^i8)(&data[0]), (uintptr)(len(data)));
-		return len(data), ERROR_SUCCESS;
-	}
-
-	return -1, ERROR_UNSUPPORTED;
+heap_resize :: proc(ptr: rawptr, new_size: int) -> rawptr {
+	return es.HeapReallocate(ptr, new_size, false);
 }
 
 open :: proc(path: string, flags: int = O_RDONLY, mode: int = 0) -> (Handle, Errno) {
-	return INVALID_HANDLE, ERROR_UNSUPPORTED;
+	return (Handle) (0), (Errno) (1);
 }
 
 close :: proc(fd: Handle) -> Errno {
-	return ERROR_UNSUPPORTED;
+	return (Errno) (1);
 }
 
 file_size :: proc(fd: Handle) -> (i64, Errno) {
-	return 0, ERROR_UNSUPPORTED;
+	return (i64) (0), (Errno) (1);
 }
 
-heap_alloc :: proc(size: int) -> rawptr {
-	return nil;
-}
-
-heap_resize :: proc(ptr: rawptr, new_size: int) -> rawptr {
-	return nil;
+read :: proc(fd: Handle, data: []byte) -> (int, Errno) {
+	return (int) (0), (Errno) (1);
 }
 
-heap_free :: proc(ptr: rawptr) {
+write :: proc(fd: Handle, data: []u8) -> (int, Errno) {
+	return (int) (0), (Errno) (1);
 }
 
-current_thread_id :: proc "contextless" () -> int {
-	// return int(EsThreadGetID(ES_CURRENT_THREAD));
-	return -1;
-}

+ 18 - 0
core/runtime/procs_essence.odin

@@ -0,0 +1,18 @@
+package runtime
+
+import "core:sys/es"
+
+@(link_name="memset")
+memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr {
+	return es.CRTmemset(ptr, val, len);
+}
+
+@(link_name="memmove")
+memmove :: proc "c" (dst, src: rawptr, len: int) -> rawptr {
+	return es.CRTmemmove(dst, src, len);
+}
+
+@(link_name="memcpy")
+memcpy :: proc "c" (dst, src: rawptr, len: int) -> rawptr {
+	return es.CRTmemcpy(dst, src, len);
+}

+ 2772 - 0
core/sys/es/api.odin

@@ -0,0 +1,2772 @@
+package es
+Element :: rawptr;
+Generic :: rawptr;
+INSTANCE_TYPE :: Instance;
+Panel :: Element;
+Window :: Element;
+Scrollbar :: Element;
+Button :: Element;
+TextDisplay :: Element;
+IconDisplay :: Element;
+Textbox :: Element;
+ListView :: Element;
+Menu :: Element;
+Choice :: Element;
+ColorWell :: Element;
+Splitter :: Element;
+ImageDisplay :: Element;
+ElementGroup :: Element;
+TextPlan :: Element;
+Store :: Element;
+DirectoryMonitor :: Element;
+NodeType :: u64     ;
+Error :: int     ;
+Handle :: uint     ;
+Response :: i32;
+FileOffset :: u64     ;
+FileOffsetDifference :: i64    ;
+AudioDeviceID :: u64     ;
+SCANCODE_A :: 				(0x04);
+SCANCODE_B :: 				(0x05);
+SCANCODE_C :: 				(0x06);
+SCANCODE_D :: 				(0x07);
+SCANCODE_E :: 				(0x08);
+SCANCODE_F :: 				(0x09);
+SCANCODE_G :: 				(0x0A);
+SCANCODE_H :: 				(0x0B);
+SCANCODE_I :: 				(0x0C);
+SCANCODE_J :: 				(0x0D);
+SCANCODE_K :: 				(0x0E);
+SCANCODE_L :: 				(0x0F);
+SCANCODE_M :: 				(0x10);
+SCANCODE_N :: 				(0x11);
+SCANCODE_O :: 				(0x12);
+SCANCODE_P :: 				(0x13);
+SCANCODE_Q :: 				(0x14);
+SCANCODE_R :: 				(0x15);
+SCANCODE_S :: 				(0x16);
+SCANCODE_T :: 				(0x17);
+SCANCODE_U :: 				(0x18);
+SCANCODE_V :: 				(0x19);
+SCANCODE_W :: 				(0x1A);
+SCANCODE_X :: 				(0x1B);
+SCANCODE_Y :: 				(0x1C);
+SCANCODE_Z :: 				(0x1D);
+SCANCODE_1 :: 				(0x1E);
+SCANCODE_2 :: 				(0x1F);
+SCANCODE_3 :: 				(0x20);
+SCANCODE_4 :: 				(0x21);
+SCANCODE_5 :: 				(0x22);
+SCANCODE_6 :: 				(0x23);
+SCANCODE_7 :: 				(0x24);
+SCANCODE_8 :: 				(0x25);
+SCANCODE_9 :: 				(0x26);
+SCANCODE_0 :: 				(0x27);
+SCANCODE_ENTER ::  			(0x28);
+SCANCODE_ESCAPE :: 			(0x29);
+SCANCODE_BACKSPACE :: 			(0x2A);
+SCANCODE_TAB :: 				(0x2B);
+SCANCODE_SPACE :: 			(0x2C);
+SCANCODE_HYPHEN :: 			(0x2D);
+SCANCODE_EQUALS :: 			(0x2E);
+SCANCODE_LEFT_BRACE :: 			(0x2F);
+SCANCODE_RIGHT_BRACE :: 			(0x30);
+SCANCODE_COMMA :: 			(0x36);
+SCANCODE_PERIOD :: 			(0x37);
+SCANCODE_SLASH :: 			(0x38);
+SCANCODE_PUNCTUATION_1 :: 		(0x31) ;
+SCANCODE_PUNCTUATION_2 :: 		(0x32) ;
+SCANCODE_PUNCTUATION_3 :: 		(0x33) ;
+SCANCODE_PUNCTUATION_4 :: 		(0x34) ;
+SCANCODE_PUNCTUATION_5 :: 		(0x35) ;
+SCANCODE_PUNCTUATION_6 :: 		(0x64) ;
+SCANCODE_F1 :: 				(0x3A);
+SCANCODE_F2 :: 				(0x3B);
+SCANCODE_F3 :: 				(0x3C);
+SCANCODE_F4 :: 				(0x3D);
+SCANCODE_F5 :: 				(0x3E);
+SCANCODE_F6 :: 				(0x3F);
+SCANCODE_F7 :: 				(0x40);
+SCANCODE_F8 :: 				(0x41);
+SCANCODE_F9 :: 				(0x42);
+SCANCODE_F10 :: 				(0x43);
+SCANCODE_F11 :: 				(0x44);
+SCANCODE_F12 :: 				(0x45);
+SCANCODE_F13 :: 				(0x68);
+SCANCODE_F14 :: 				(0x69);
+SCANCODE_F15 :: 				(0x6A);
+SCANCODE_F16 :: 				(0x6B);
+SCANCODE_F17 :: 				(0x6C);
+SCANCODE_F18 :: 				(0x6D);
+SCANCODE_F19 :: 				(0x6E);
+SCANCODE_F20 :: 				(0x6F);
+SCANCODE_F21 :: 				(0x70);
+SCANCODE_F22 :: 				(0x71);
+SCANCODE_F23 :: 				(0x72);
+SCANCODE_F24 :: 				(0x73);
+SCANCODE_CAPS_LOCK :: 			(0x39);
+SCANCODE_PRINT_SCREEN :: 			(0x46);
+SCANCODE_SCROLL_LOCK :: 			(0x47);
+SCANCODE_PAUSE :: 			(0x48);
+SCANCODE_INSERT :: 			(0x49);
+SCANCODE_HOME :: 				(0x4A);
+SCANCODE_PAGE_UP :: 			(0x4B);
+SCANCODE_DELETE :: 			(0x4C);
+SCANCODE_END :: 				(0x4D);
+SCANCODE_PAGE_DOWN :: 			(0x4E);
+SCANCODE_RIGHT_ARROW :: 			(0x4F);
+SCANCODE_LEFT_ARROW :: 			(0x50);
+SCANCODE_DOWN_ARROW :: 			(0x51);
+SCANCODE_UP_ARROW :: 			(0x52);
+SCANCODE_NUM_LOCK :: 			(0x53);
+SCANCODE_CONTEXT_MENU ::  		(0x65);
+SCANCODE_SYSTEM_REQUEST :: 		(0x9A);
+SCANCODE_ACTION_EXECUTE :: 		(0x74);
+SCANCODE_ACTION_HELP :: 			(0x75);
+SCANCODE_ACTION_MENU :: 			(0x76);
+SCANCODE_ACTION_SELECT :: 		(0x77);
+SCANCODE_ACTION_STOP :: 			(0x78);
+SCANCODE_ACTION_AGAIN :: 			(0x79);
+SCANCODE_ACTION_UNDO :: 			(0x7A);
+SCANCODE_ACTION_CUT :: 			(0x7B);
+SCANCODE_ACTION_COPY :: 			(0x7C);
+SCANCODE_ACTION_PASTE :: 			(0x7D);
+SCANCODE_ACTION_FIND :: 			(0x7E);
+SCANCODE_ACTION_CANCEL :: 		(0x9B);
+SCANCODE_ACTION_CLEAR :: 			(0x9C);
+SCANCODE_ACTION_PRIOR :: 			(0x9D);
+SCANCODE_ACTION_RETURN :: 		(0x9E);
+SCANCODE_ACTION_SEPARATOR :: 		(0x9F);
+SCANCODE_MM_MUTE :: 			(0x7F);
+SCANCODE_MM_LOUDER :: 			(0x80);
+SCANCODE_MM_QUIETER :: 			(0x81);
+SCANCODE_MM_NEXT :: 			(0x103);
+SCANCODE_MM_PREVIOUS :: 			(0x104);
+SCANCODE_MM_STOP :: 			(0x105);
+SCANCODE_MM_PAUSE :: 			(0x106);
+SCANCODE_MM_SELECT :: 			(0x107);
+SCANCODE_MM_EMAIL :: 			(0x108);
+SCANCODE_MM_CALC :: 			(0x109);
+SCANCODE_MM_FILES :: 			(0x10A);
+SCANCODE_INTERNATIONAL_1 :: 		(0x87);
+SCANCODE_INTERNATIONAL_2 :: 		(0x88);
+SCANCODE_INTERNATIONAL_3 :: 		(0x89);
+SCANCODE_INTERNATIONAL_4 :: 		(0x8A);
+SCANCODE_INTERNATIONAL_5 :: 		(0x8B);
+SCANCODE_INTERNATIONAL_6 :: 		(0x8C);
+SCANCODE_INTERNATIONAL_7 :: 		(0x8D);
+SCANCODE_INTERNATIONAL_8 :: 		(0x8E);
+SCANCODE_INTERNATIONAL_9 :: 		(0x8F);
+SCANCODE_HANGUL_ENGLISH_TOGGLE :: 	(0x90);
+SCANCODE_HANJA_CONVERSION :: 		(0x91);
+SCANCODE_KATAKANA :: 			(0x92);
+SCANCODE_HIRAGANA :: 			(0x93);
+SCANCODE_HANKAKU_ZENKAKU_TOGGLE :: 	(0x94);
+SCANCODE_ALTERNATE_ERASE :: 		(0x99);
+SCANCODE_THOUSANDS_SEPARATOR :: 		(0xB2);
+SCANCODE_DECIMAL_SEPARATOR :: 		(0xB3);
+SCANCODE_CURRENCY_UNIT :: 		(0xB4);
+SCANCODE_CURRENCY_SUBUNIT :: 		(0xB5);
+SCANCODE_NUM_DIVIDE :: 			(0x54);
+SCANCODE_NUM_MULTIPLY :: 			(0x55);
+SCANCODE_NUM_SUBTRACT :: 			(0x56);
+SCANCODE_NUM_ADD :: 			(0x57);
+SCANCODE_NUM_ENTER :: 			(0x58);
+SCANCODE_NUM_1 :: 			(0x59);
+SCANCODE_NUM_2 :: 			(0x5A);
+SCANCODE_NUM_3 :: 			(0x5B);
+SCANCODE_NUM_4 :: 			(0x5C);
+SCANCODE_NUM_5 :: 			(0x5D);
+SCANCODE_NUM_6 :: 			(0x5E);
+SCANCODE_NUM_7 :: 			(0x5F);
+SCANCODE_NUM_8 :: 			(0x60);
+SCANCODE_NUM_9 :: 			(0x61);
+SCANCODE_NUM_0 :: 			(0x62);
+SCANCODE_NUM_POINT :: 			(0x63);
+SCANCODE_NUM_EQUALS :: 			(0x67);
+SCANCODE_NUM_COMMA :: 			(0x82);
+SCANCODE_NUM_00 :: 			(0xB0);
+SCANCODE_NUM_000 :: 			(0xB1);
+SCANCODE_NUM_LEFT_PAREN :: 		(0xB6);
+SCANCODE_NUM_RIGHT_PAREN :: 		(0xB7);
+SCANCODE_NUM_LEFT_BRACE :: 		(0xB8);
+SCANCODE_NUM_RIGHT_BRACE :: 		(0xB9);
+SCANCODE_NUM_TAB :: 			(0xBA);
+SCANCODE_NUM_BACKSPACE :: 		(0xBB);
+SCANCODE_NUM_A :: 			(0xBC);
+SCANCODE_NUM_B :: 			(0xBD);
+SCANCODE_NUM_C :: 			(0xBE);
+SCANCODE_NUM_D :: 			(0xBF);
+SCANCODE_NUM_E :: 			(0xC0);
+SCANCODE_NUM_F :: 			(0xC1);
+SCANCODE_NUM_XOR :: 			(0xC2);
+SCANCODE_NUM_CARET :: 			(0xC3);
+SCANCODE_NUM_PERCENT :: 			(0xC4);
+SCANCODE_NUM_LESS_THAN :: 		(0xC5);
+SCANCODE_NUM_GREATER_THAN :: 		(0xC6);
+SCANCODE_NUM_AMPERSAND :: 		(0xC7);
+SCANCODE_NUM_DOUBLE_AMPERSAND :: 		(0xC8);
+SCANCODE_NUM_BAR :: 			(0xC9);
+SCANCODE_NUM_DOUBLE_BAR :: 		(0xCA);
+SCANCODE_NUM_COLON :: 			(0xCB);
+SCANCODE_NUM_HASH :: 			(0xCC);
+SCANCODE_NUM_SPACE :: 			(0xCD);
+SCANCODE_NUM_AT :: 			(0xCE);
+SCANCODE_NUM_EXCLAMATION_MARK :: 		(0xCF);
+SCANCODE_NUM_MEMORY_STORE :: 		(0xD0);
+SCANCODE_NUM_MEMORY_RECALL :: 		(0xD1);
+SCANCODE_NUM_MEMORY_CLEAR :: 		(0xD2);
+SCANCODE_NUM_MEMORY_ADD :: 		(0xD3);
+SCANCODE_NUM_MEMORY_SUBTRACT :: 		(0xD4);
+SCANCODE_NUM_MEMORY_MULTIPLY :: 		(0xD5);
+SCANCODE_NUM_MEMORY_DIVIDE :: 		(0xD6);
+SCANCODE_NUM_NEGATE :: 			(0xD7);
+SCANCODE_NUM_CLEAR_ALL :: 		(0xD8);
+SCANCODE_NUM_CLEAR :: 			(0xD9);
+SCANCODE_NUM_BINARY :: 			(0xDA);
+SCANCODE_NUM_OCTAL :: 			(0xDB);
+SCANCODE_NUM_DECIMAL :: 			(0xDC);
+SCANCODE_NUM_HEXADECIMAL :: 		(0xDD);
+SCANCODE_LEFT_CTRL :: 			(0xE0);
+SCANCODE_LEFT_SHIFT :: 			(0xE1);
+SCANCODE_LEFT_ALT :: 			(0xE2);
+SCANCODE_LEFT_FLAG :: 			(0xE3);
+SCANCODE_RIGHT_CTRL :: 			(0xE4);
+SCANCODE_RIGHT_SHIFT :: 			(0xE5);
+SCANCODE_RIGHT_ALT :: 			(0xE6);
+SCANCODE_RIGHT_FLAG :: 			(0xE7);
+SCANCODE_ACPI_POWER ::  			(0x100);
+SCANCODE_ACPI_SLEEP ::  			(0x101);
+SCANCODE_ACPI_WAKE ::   			(0x102);
+SCANCODE_WWW_SEARCH :: 			(0x10B);
+SCANCODE_WWW_HOME :: 			(0x10C);
+SCANCODE_WWW_BACK :: 			(0x10D);
+SCANCODE_WWW_FORWARD :: 			(0x10E);
+SCANCODE_WWW_STOP :: 			(0x10F);
+SCANCODE_WWW_REFRESH :: 			(0x110);
+SCANCODE_WWW_STARRED :: 			(0x111);
+PROCESS_STATE_ALL_THREADS_TERMINATED :: 	(1);
+PROCESS_STATE_TERMINATING :: 		(2);
+PROCESS_STATE_CRASHED :: 			(4);
+FLAGS_DEFAULT ::  (0);
+SUCCESS ::  	(-1);
+ERROR_BUFFER_TOO_SMALL :: 		(-2);
+ERROR_UNKNOWN_OPERATION_FAILURE ::  	(-7);
+ERROR_NO_MESSAGES_AVAILABLE :: 		(-9);
+ERROR_MESSAGE_QUEUE_FULL :: 		(-10);
+ERROR_PATH_NOT_WITHIN_MOUNTED_VOLUME :: 	(-14);
+ERROR_PATH_NOT_TRAVERSABLE :: 		(-15);
+ERROR_FILE_ALREADY_EXISTS :: 		(-19);
+ERROR_FILE_DOES_NOT_EXIST :: 		(-20);
+ERROR_DRIVE_ERROR_FILE_DAMAGED :: 	(-21) ;
+ERROR_ACCESS_NOT_WITHIN_FILE_BOUNDS :: 	(-22) ;
+ERROR_FILE_PERMISSION_NOT_GRANTED :: 	(-23);
+ERROR_FILE_IN_EXCLUSIVE_USE :: 		(-24);
+ERROR_FILE_CANNOT_GET_EXCLUSIVE_USE :: 	(-25);
+ERROR_INCORRECT_NODE_TYPE :: 		(-26);
+ERROR_EVENT_NOT_SET :: 			(-27);
+ERROR_TIMEOUT_REACHED :: 			(-29);
+ERROR_FILE_ON_READ_ONLY_VOLUME :: 	(-32);
+ERROR_INVALID_DIMENSIONS :: 		(-34);
+ERROR_DRIVE_CONTROLLER_REPORTED :: 	(-35);
+ERROR_COULD_NOT_ISSUE_PACKET :: 		(-36);
+ERROR_HANDLE_TABLE_FULL :: 		(-37);
+ERROR_COULD_NOT_RESIZE_FILE :: 		(-38);
+ERROR_DIRECTORY_NOT_EMPTY :: 		(-39);
+ERROR_UNSUPPORTED_FILESYSTEM :: 		(-40);
+ERROR_NODE_ALREADY_DELETED :: 		(-41);
+ERROR_NODE_IS_ROOT :: 			(-42);
+ERROR_VOLUME_MISMATCH :: 			(-43);
+ERROR_TARGET_WITHIN_SOURCE :: 		(-44);
+ERROR_TARGET_INVALID_TYPE :: 		(-45);
+ERROR_NOTHING_TO_DRAW :: 			(-46);
+ERROR_MALFORMED_NODE_PATH :: 		(-47);
+ERROR_OUT_OF_CACHE_RESOURCES :: 		(-48);
+ERROR_TARGET_IS_SOURCE :: 		(-49);
+ERROR_INVALID_NAME :: 			(-50);
+ERROR_CORRUPT_DATA :: 			(-51);
+ERROR_INSUFFICIENT_RESOURCES :: 		(-52);
+ERROR_UNSUPPORTED_FEATURE :: 		(-53);
+ERROR_FILE_TOO_FRAGMENTED :: 		(-54);
+ERROR_DRIVE_FULL :: 			(-55);
+ERROR_COULD_NOT_RESOLVE_SYMBOL :: 	(-56);
+ERROR_ALREADY_EMBEDDED :: 		(-57);
+ERROR_EVENT_SINK_OVERFLOW ::  		(-58);
+ERROR_EVENT_SINK_DUPLICATE :: 		(-59);
+ERROR_UNSUPPORTED_CONVERSION :: 		(-60);
+ERROR_SOURCE_EMPTY :: 			(-61);
+SYSTEM_CONSTANT_TIME_STAMP_UNITS_PER_MICROSECOND ::  (0);
+SYSTEM_CONSTANT_NO_FANCY_GRAPHICS :: 		   (1);
+SYSTEM_CONSTANT_REPORTED_PROBLEMS :: 		   (2);
+SYSTEM_CONSTANT_RIGHT_TO_LEFT :: 		    	   (3);
+SYSTEM_CONSTANT_WINDOW_INSET ::  		    	   (4);
+SYSTEM_CONSTANT_CONTAINER_TAB_BAND_HEIGHT ::         (5);
+SYSTEM_CONSTANT_WINDOW_BORDER_THICKNESS ::           (6);
+INVALID_HANDLE ::  		((  Handle) (0));
+CURRENT_THREAD :: 	 	((  Handle) (0x10));
+CURRENT_PROCESS :: 	 	((  Handle) (0x11));
+SURFACE_UI_SHEET :: 		((  Handle) (0x20));
+SURFACE_WALLPAPER :: 		((  Handle) (0x21));
+DRAW_ALPHA_OVERWRITE :: 		(0x100);
+DRAW_ALPHA_FULL :: 		(0x200) ;
+WAIT_NO_TIMEOUT ::             (-1);
+MAX_WAIT_COUNT ::              (8);
+MAX_EVENT_FORWARD_COUNT ::     (4)   ;
+MAX_EVENT_SINK_BUFFER_SIZE ::  (256) ;
+MAX_DIRECTORY_CHILD_NAME_LENGTH ::  (256);
+PROCESS_EXECUTABLE_NOT_LOADED ::      (0);
+PROCESS_EXECUTABLE_FAILED_TO_LOAD ::  (1);
+PROCESS_EXECUTABLE_LOADED ::          (2);
+SNAPSHOT_MAX_PROCESS_NAME_LENGTH ::  	(80);
+SYSTEM_SNAPSHOT_PROCESSES ::  		(1);
+SYSTEM_SNAPSHOT_DRIVES ::  		(2);
+HANDLED ::      (0);
+NOT_HANDLED ::  (-1);
+REJECTED ::     (-2);
+SHARED_MEMORY_NAME_MAX_LENGTH ::  (32);
+MAP_OBJECT_ALL ::  (0);
+TEXT_H_LEFT ::  			(1);
+TEXT_H_RIGHT ::  			(2);
+TEXT_H_CENTER ::  		(3);
+TEXT_V_TOP ::  			(4);
+TEXT_V_BOTTOM ::  		(8);
+TEXT_V_CENTER ::  		(12);
+TEXT_WRAP ::  			(16);
+TEXT_ELLIPSIS :: 			(32);
+NODE_READ_NONE :: 		(0x0);
+NODE_READ_BLOCK :: 		(0x1);
+NODE_READ_ACCESS :: 		(0x2);
+NODE_READ_EXCLUSIVE :: 		(0x3);
+NODE_WRITE_NONE :: 		(0x00);
+NODE_WRITE_BLOCK :: 		(0x10);
+NODE_WRITE_ACCESS :: 		(0x20);
+NODE_WRITE_EXCLUSIVE :: 		(0x30);
+NODE_RESIZE_NONE :: 		(0x000);
+NODE_RESIZE_BLOCK :: 		(0x100);
+NODE_RESIZE_ACCESS :: 		(0x200);
+NODE_RESIZE_EXCLUSIVE :: 		(0x300);
+NODE_FAIL_IF_FOUND :: 		(0x1000);
+NODE_FAIL_IF_NOT_FOUND :: 	(0x2000);
+NODE_CREATE_DIRECTORIES :: 	(0x8000)  ;
+NODE_POSIX_NAMESPACE :: 		(0x10000) ;
+NODE_FILE :: 			(0);
+NODE_DIRECTORY :: 		(0x40000);
+NODE_INVALID :: 			(0x80000);
+DIRECTORY_CHILDREN_UNKNOWN :: 	((  FileOffsetDifference) (-1));
+MEMORY_OPEN_FAIL_IF_FOUND ::      (0x1000);
+MEMORY_OPEN_FAIL_IF_NOT_FOUND ::  (0x2000);
+MAP_OBJECT_READ_WRITE ::          (0);
+MAP_OBJECT_READ_ONLY ::           (1);
+MAP_OBJECT_COPY_ON_WRITE ::       (2);
+STRING_FORMAT_ENOUGH_SPACE :: 	(                  (-1));
+POSIX_SYSCALL_GET_POSIX_FD_PATH ::  	(0x10000);
+PERMISSION_ACCESS_SYSTEM_FILES ::   	(1 << 0);
+PERMISSION_ACCESS_USER_FILES ::   	(1 << 1);
+PERMISSION_PROCESS_CREATE :: 		(1 << 2);
+PERMISSION_PROCESS_OPEN :: 		(1 << 3);
+PERMISSION_SCREEN_MODIFY :: 		(1 << 4)	;
+PERMISSION_SHUTDOWN :: 			(1 << 5);
+PERMISSION_TAKE_SYSTEM_SNAPSHOT :: 	(1 << 6);
+PERMISSION_WINDOW_OPEN :: 		(1 << 7);
+PERMISSION_ALL :: 			(                  (-1));
+PERMISSION_INHERIT :: 			(                  (1) << 63);
+PANEL_STYLE_DEFAULT :: 			"Panel.Default";
+PANEL_STYLE_TRANSPARENT :: 		"Panel.Transparent";
+PANEL_STYLE_WINDOW_BACKGROUND :: 		"Panel.WindowBackground";
+PANEL_STYLE_SHEET :: 			"Panel.Sheet";
+PANEL_STYLE_GROUP_BOX :: 			"Panel.GroupBox";
+PANEL_STYLE_INDENT :: 			"Panel.Indent";
+PANEL_BAND_SIZE_DEFAULT ::               (-1);
+ELEMENT_FOCUSABLE :: 			(                  (1) << 32);
+ELEMENT_HIDDEN :: 			(                  (1) << 33) ;
+ELEMENT_DISABLED :: 			(                  (1) << 34) ;
+ELEMENT_DEBUG :: 				(                  (1) << 35) ;
+ELEMENT_SCROLL_X :: 			(                  (1) << 36);
+ELEMENT_SCROLL_Y :: 			(                  (1) << 37);
+ELEMENT_NO_HOVER :: 			(                  (1) << 38) ;
+ELEMENT_BLOCK_FOCUS :: 			(                  (1) << 39) ;
+ELEMENT_NOT_TAB_TRAVERSABLE :: 		(                  (1) << 40) ;
+ELEMENT_NO_INFORM_PARENT :: 		(                  (1) << 41) ;
+CELL_NEW_BAND :: 		(                  (1) << 51);
+CELL_COLLAPSABLE :: 	(                  (1) << 51);
+CELL_H_PUSH ::            (                  (1) << 54);
+CELL_H_EXPAND ::          (                  (1) << 55);
+CELL_H_SHRINK :: 		(                  (1) << 56);
+CELL_H_LEFT ::            (                  (1) << 57);
+CELL_H_RIGHT ::           (                  (1) << 58);
+CELL_V_PUSH ::            (                  (1) << 59);
+CELL_V_EXPAND ::          (                  (1) << 60);
+CELL_V_SHRINK :: 		(                  (1) << 61);
+CELL_V_TOP ::             (                  (1) << 62);
+CELL_V_BOTTOM ::          (                  (1) << 63);
+PANEL_VERTICAL :: 	(0x0001);
+PANEL_WRAP :: 		(0x0002);
+PANEL_TABLE :: 		(0x0004);
+PANEL_Z_STACK :: 		(0x0008);
+PANEL_H_LEFT :: 		(0x0010);
+PANEL_H_RIGHT :: 		(0x0020);
+PANEL_H_CENTER :: 	(0x0040);
+PANEL_H_JUSTIFY :: 	(0x0080);
+PANEL_V_TOP :: 		(0x0100);
+PANEL_V_BOTTOM :: 	(0x0200);
+PANEL_V_CENTER :: 	(0x0400);
+PANEL_V_JUSTIFY :: 	(0x0800);
+PANEL_H_SCROLL :: 	(0x1000);
+PANEL_V_SCROLL :: 	(0x2000);
+PANEL_SWITCHER :: 	(0x4000);
+TEXTBOX_MULTILINE :: 			(1 << 0);
+TEXTBOX_EDIT_BASED :: 			(1 << 1);
+TEXTBOX_COMPACT :: 			(1 << 2);
+TEXTBOX_NO_SMART_CONTEXT_MENUS :: 	(1 << 3);
+TEXTBOX_FIND_BACKWARDS :: 		(1 << 0);
+BUTTON_DEFAULT :: 			(1 << 0);
+BUTTON_DANGEROUS :: 			(1 << 1);
+BUTTON_MENU_ITEM :: 			(1 << 2);
+BUTTON_NOT_FOCUSABLE :: 			(1 << 3);
+BUTTON_TOOLBAR :: 			(1 << 4);
+BUTTON_DROPDOWN :: 			(1 << 5);
+BUTTON_COMPACT :: 			(1 << 6);
+MENU_ITEM_HEADER :: 			(1 << 7);
+BUTTON_CHECKBOX :: 			(1 << 8);
+BUTTON_RADIOBOX :: 			(1 << 9);
+BUTTON_CANCEL :: 				(1 << 10);
+BUTTON_PUSH :: 				(1 << 11);
+COLOR_WELL_HAS_OPACITY :: 		(1 << 0);
+SCROLLBAR_VERTICAL :: 			(0 << 0);
+SCROLLBAR_HORIZONTAL :: 			(1 << 0);
+SPLITTER_VERTICAL :: 			(0 << 0);
+SPLITTER_HORIZONTAL :: 			(1 << 0);
+IMAGE_DISPLAY_LOAD_ASYNCHRONOUSLY :: 	(1 << 0);
+IMAGE_DISPLAY_UNLOAD_WHEN_HIDDEN :: 	(1 << 1);
+IMAGE_DISPLAY_UPSCALE_NEAREST :: 		(1 << 2);
+IMAGE_DISPLAY_DOWNSCALE_NEAREST :: 	(1 << 3);
+IMAGE_DISPLAY_OPAQUE :: 			(1 << 4);
+LIST_VIEW_HORIZONTAL :: 			(1 << 0) ;
+LIST_VIEW_VARIABLE_SIZE :: 		(1 << 1) ;
+LIST_VIEW_TILED :: 			(1 << 2) ;
+LIST_VIEW_NON_LINEAR :: 			(1 << 3) ;
+LIST_VIEW_SINGLE_SELECT :: 		(1 << 4) ;
+LIST_VIEW_MULTI_SELECT :: 		(1 << 5) ;
+LIST_VIEW_COLUMNS :: 			(1 << 6) ;
+LIST_VIEW_GROUP_HAS_HEADER :: 		(1 << 0) ;
+LIST_VIEW_GROUP_HAS_FOOTER :: 		(1 << 1) ;
+LIST_VIEW_GROUP_INDENT :: 		(1 << 2) ;
+LIST_VIEW_GROUP_COLLAPSABLE :: 		(1 << 3) ;
+LIST_VIEW_COLUMN_RIGHT_ALIGNED :: 	(1 << 0) ;
+LIST_VIEW_COLUMN_ASCENDING :: 		(1 << 1) ;
+LIST_VIEW_COLUMN_DESCENDING :: 		(1 << 2) ;
+LIST_VIEW_COLUMN_HAS_MENU :: 		(1 << 3) ;
+MENU_AT_CURSOR :: 			(1 << 0);
+MENU_MAXIMUM_HEIGHT :: 			(1 << 1);
+FONT_SANS ::  		(0xFFFF);
+FONT_SERIF ::  		(0xFFFE);
+FONT_MONOSPACED ::  	(0xFFFD);
+FONT_REGULAR :: 		(4);
+FONT_BOLD ::  		(7);
+TEXT_FIGURE_DEFAULT :: 	(0);
+TEXT_FIGURE_OLD :: 	(1);
+TEXT_FIGURE_TABULAR :: 	(2);
+TEXT_DISPLAY_CONTENT_MAX_VALUES ::  (8);
+DIRECTORY_MONITOR_SUBTREE ::  	(1 << 0) ;
+DIRECTORY_MONITOR_CONTENTS :: 	(1 << 1) ;
+DIRECTORY_MONITOR_MODIFY :: 	(1 << 2) ;
+COMMAND_SYSTEM_START :: 		(0xF0000000);
+COMMAND_DELETE :: 		(0xF0000001);
+COMMAND_SELECT_ALL :: 		(0xF0000002);
+COMMAND_CUT :: 			(0xF0000003);
+COMMAND_COPY :: 			(0xF0000004);
+COMMAND_PASTE :: 			(0xF0000005);
+AUDIO_STREAM_OVERRUN ::         (1 << 0);
+AUDIO_STREAM_UNDERRUN ::        (1 << 0);
+AUDIO_STREAM_FORMAT_CHANGED ::  (1 << 1);
+AUDIO_STREAM_TERMINATED ::      (1 << 2);
+AUDIO_STREAM_RUNNING ::         (1 << 0);
+AUDIO_STREAM_MUTED ::           (1 << 1);
+AUDIO_STREAM_ONESHOT ::         (1 << 2);
+AUDIO_DEFAULT_OUTPUT ::  (1);
+SAMPLE_FORMAT_U8 ::     (1);
+SAMPLE_FORMAT_S16LE ::  (2);
+SAMPLE_FORMAT_S32LE ::  (3);
+SAMPLE_FORMAT_F32LE ::  (4) ;
+STYLED_BOX_BLEND_MODE_NORMAL ::  (0);
+STYLED_BOX_BLEND_MODE_XOR ::     (1);
+CELL_FILL :: 	 (   CELL_H_FILL |    CELL_V_FILL);
+CELL_H_FILL :: 	 (   CELL_H_PUSH |    CELL_H_EXPAND |    CELL_H_SHRINK);
+CELL_V_FILL :: 	 (   CELL_V_PUSH |    CELL_V_EXPAND |    CELL_V_SHRINK);
+CELL_CENTER :: 	 (   CELL_H_CENTER |    CELL_V_CENTER);
+CELL_PUSH :: 	 (   CELL_H_PUSH |    CELL_V_PUSH);
+CELL_EXPAND ::     (   CELL_H_EXPAND |    CELL_V_EXPAND);
+CELL_CORNER :: 	 (   CELL_H_LEFT |    CELL_V_TOP);
+CELL_SHRINK :: 	 (   CELL_H_SHRINK |    CELL_V_SHRINK);
+CELL_H_CENTER ::   (   CELL_H_LEFT |    CELL_H_RIGHT);
+CELL_V_CENTER ::   (   CELL_V_TOP |    CELL_V_BOTTOM);
+StandardIcon :: enum {
+	ICON_NONE,
+	ICON_ACTION_UNAVAILABLE_SYMBOLIC,
+	ICON_ADDRESS_BOOK_NEW,
+	ICON_ADDRESS_BOOK_NEW_SYMBOLIC,
+	ICON_ALIGN_HORIZONTAL_CENTER,
+	ICON_ALIGN_HORIZONTAL_CENTER_SYMBOLIC,
+	ICON_ALIGN_HORIZONTAL_LEFT,
+	ICON_ALIGN_HORIZONTAL_LEFT_SYMBOLIC,
+	ICON_ALIGN_HORIZONTAL_LEFT_TO_ANCHOR,
+	ICON_ALIGN_HORIZONTAL_LEFT_TO_ANCHOR_SYMBOLIC,
+	ICON_ALIGN_HORIZONTAL_RIGHT,
+	ICON_ALIGN_HORIZONTAL_RIGHT_SYMBOLIC,
+	ICON_ALIGN_HORIZONTAL_RIGHT_TO_ANCHOR,
+	ICON_ALIGN_HORIZONTAL_RIGHT_TO_ANCHOR_SYMBOLIC,
+	ICON_ALIGN_VERTICAL_BOTTOM,
+	ICON_ALIGN_VERTICAL_BOTTOM_SYMBOLIC,
+	ICON_ALIGN_VERTICAL_BOTTOM_TO_ANCHOR,
+	ICON_ALIGN_VERTICAL_BOTTOM_TO_ANCHOR_SYMBOLIC,
+	ICON_ALIGN_VERTICAL_CENTER,
+	ICON_ALIGN_VERTICAL_CENTER_SYMBOLIC,
+	ICON_ALIGN_VERTICAL_TOP,
+	ICON_ALIGN_VERTICAL_TOP_SYMBOLIC,
+	ICON_ALIGN_VERTICAL_TOP_TO_ANCHOR,
+	ICON_ALIGN_VERTICAL_TOP_TO_ANCHOR_SYMBOLIC,
+	ICON_APPLICATION_ADD_SYMBOLIC,
+	ICON_APPOINTMENT_NEW,
+	ICON_APPOINTMENT_NEW_SYMBOLIC,
+	ICON_APPOINTMENT_SYMBOLIC,
+	ICON_BOOKMARK_NEW,
+	ICON_BOOKMARK_NEW_SYMBOLIC,
+	ICON_BROWSER_DOWNLOAD,
+	ICON_BROWSER_DOWNLOAD_SYMBOLIC,
+	ICON_CALL_START,
+	ICON_CALL_START_SYMBOLIC,
+	ICON_CALL_STOP,
+	ICON_CALL_STOP_SYMBOLIC,
+	ICON_COLOR_FILL,
+	ICON_COLOR_GRADIENT,
+	ICON_COLOR_GRADIENT_MESH,
+	ICON_COLOR_SELECT_SYMBOLIC,
+	ICON_CONTACT_NEW,
+	ICON_CONTACT_NEW_SYMBOLIC,
+	ICON_DISTRIBUTE_HORIZONTAL_CENTER,
+	ICON_DISTRIBUTE_HORIZONTAL_GAPS,
+	ICON_DISTRIBUTE_HORIZONTAL_LEFT,
+	ICON_DISTRIBUTE_HORIZONTAL_RIGHT,
+	ICON_DISTRIBUTE_VERTICAL_BOTTOM,
+	ICON_DISTRIBUTE_VERTICAL_CENTER,
+	ICON_DISTRIBUTE_VERTICAL_GAPS,
+	ICON_DISTRIBUTE_VERTICAL_TOP,
+	ICON_DOCUMENT_EDIT,
+	ICON_DOCUMENT_EDIT_SYMBOLIC,
+	ICON_DOCUMENT_EXPORT,
+	ICON_DOCUMENT_EXPORT_SYMBOLIC,
+	ICON_DOCUMENT_IMPORT,
+	ICON_DOCUMENT_IMPORT_SYMBOLIC,
+	ICON_DOCUMENT_NEW,
+	ICON_DOCUMENT_NEW_SYMBOLIC,
+	ICON_DOCUMENT_OPEN_RECENT,
+	ICON_DOCUMENT_OPEN_RECENT_SYMBOLIC,
+	ICON_DOCUMENT_OPEN_SYMBOLIC,
+	ICON_DOCUMENT_PAGE_SETUP,
+	ICON_DOCUMENT_PAGE_SETUP_SYMBOLIC,
+	ICON_DOCUMENT_PRINT_PREVIEW,
+	ICON_DOCUMENT_PRINT_PREVIEW_SYMBOLIC,
+	ICON_DOCUMENT_PRINT_SYMBOLIC,
+	ICON_DOCUMENT_PROPERTIES,
+	ICON_DOCUMENT_PROPERTIES_SYMBOLIC,
+	ICON_DOCUMENT_REVERT,
+	ICON_DOCUMENT_REVERT_SYMBOLIC,
+	ICON_DOCUMENT_SAVE_AS,
+	ICON_DOCUMENT_SAVE_AS_SYMBOLIC,
+	ICON_DOCUMENT_SAVE_SYMBOLIC,
+	ICON_DOCUMENT_SEND,
+	ICON_DOCUMENT_SEND_SYMBOLIC,
+	ICON_DRAW_CUBOID,
+	ICON_DRAW_ELLIPSE,
+	ICON_DRAW_ERASER,
+	ICON_DRAW_FREEHAND,
+	ICON_DRAW_PATH,
+	ICON_DRAW_POLYGON_STAR,
+	ICON_DRAW_RECTANGLE,
+	ICON_DRAW_SPIRAL,
+	ICON_DRAW_TEXT,
+	ICON_EDIT_CLEAR,
+	ICON_EDIT_CLEAR_ALL_SYMBOLIC,
+	ICON_EDIT_CLEAR_SYMBOLIC,
+	ICON_EDIT_COPY,
+	ICON_EDIT_COPY_SYMBOLIC,
+	ICON_EDIT_CUT,
+	ICON_EDIT_CUT_SYMBOLIC,
+	ICON_EDIT_DELETE_SYMBOLIC,
+	ICON_EDIT_FIND,
+	ICON_EDIT_FIND_REPLACE,
+	ICON_EDIT_FIND_REPLACE_SYMBOLIC,
+	ICON_EDIT_FIND_SYMBOLIC,
+	ICON_EDIT_FLAG,
+	ICON_EDIT_FLAG_SYMBOLIC,
+	ICON_EDIT_MARK,
+	ICON_EDIT_PASTE,
+	ICON_EDIT_PASTE_SYMBOLIC,
+	ICON_EDIT_REDO,
+	ICON_EDIT_REDO_SYMBOLIC,
+	ICON_EDIT_SELECT_ALL,
+	ICON_EDIT_SELECT_ALL_SYMBOLIC,
+	ICON_EDIT_SELECT_SYMBOLIC,
+	ICON_EDIT_UNDO,
+	ICON_EDIT_UNDO_ARCHIVE,
+	ICON_EDIT_UNDO_SYMBOLIC,
+	ICON_ERROR_CORRECT_SYMBOLIC,
+	ICON_EVENT_NEW,
+	ICON_FIND_LOCATION,
+	ICON_FIND_LOCATION_SYMBOLIC,
+	ICON_FOLDER_COPY,
+	ICON_FOLDER_MOVE,
+	ICON_FOLDER_NEW,
+	ICON_FOLDER_NEW_SYMBOLIC,
+	ICON_FONT_SELECT_SYMBOLIC,
+	ICON_FORMAT_INDENT_LESS,
+	ICON_FORMAT_INDENT_LESS_SYMBOLIC,
+	ICON_FORMAT_INDENT_MORE,
+	ICON_FORMAT_INDENT_MORE_SYMBOLIC,
+	ICON_FORMAT_JUSTIFY_CENTER,
+	ICON_FORMAT_JUSTIFY_CENTER_SYMBOLIC,
+	ICON_FORMAT_JUSTIFY_FILL,
+	ICON_FORMAT_JUSTIFY_FILL_SYMBOLIC,
+	ICON_FORMAT_JUSTIFY_LEFT,
+	ICON_FORMAT_JUSTIFY_LEFT_SYMBOLIC,
+	ICON_FORMAT_JUSTIFY_RIGHT,
+	ICON_FORMAT_JUSTIFY_RIGHT_SYMBOLIC,
+	ICON_FORMAT_TEXT_BOLD,
+	ICON_FORMAT_TEXT_BOLD_ES_SYMBOLIC,
+	ICON_FORMAT_TEXT_BOLD_FR_SYMBOLIC,
+	ICON_FORMAT_TEXT_BOLD_SYMBOLIC,
+	ICON_FORMAT_TEXT_CLEAR_FORMATTING_SYMBOLIC,
+	ICON_FORMAT_TEXT_DIRECTION_LTR_SYMBOLIC,
+	ICON_FORMAT_TEXT_HIGHLIGHT,
+	ICON_FORMAT_TEXT_ITALIC,
+	ICON_FORMAT_TEXT_ITALIC_ES_SYMBOLIC,
+	ICON_FORMAT_TEXT_ITALIC_SYMBOLIC,
+	ICON_FORMAT_TEXT_LARGER_SYMBOLIC,
+	ICON_FORMAT_TEXT_NONE,
+	ICON_FORMAT_TEXT_SMALLER_SYMBOLIC,
+	ICON_FORMAT_TEXT_STRIKETHROUGH,
+	ICON_FORMAT_TEXT_STRIKETHROUGH_FR_SYMBOLIC,
+	ICON_FORMAT_TEXT_STRIKETHROUGH_SYMBOLIC,
+	ICON_FORMAT_TEXT_UNDERLINE,
+	ICON_FORMAT_TEXT_UNDERLINE_FR_SYMBOLIC,
+	ICON_FORMAT_TEXT_UNDERLINE_SYMBOLIC,
+	ICON_GO_BOTTOM,
+	ICON_GO_BOTTOM_SYMBOLIC,
+	ICON_GO_DOWN,
+	ICON_GO_DOWN_SYMBOLIC,
+	ICON_GO_FIRST,
+	ICON_GO_FIRST_SYMBOLIC,
+	ICON_GO_HOME_SYMBOLIC,
+	ICON_GO_JUMP,
+	ICON_GO_JUMP_SYMBOLIC,
+	ICON_GO_LAST,
+	ICON_GO_LAST_SYMBOLIC,
+	ICON_GO_NEXT,
+	ICON_GO_NEXT_SYMBOLIC,
+	ICON_GO_PREVIOUS,
+	ICON_GO_PREVIOUS_SYMBOLIC,
+	ICON_GO_TOP,
+	ICON_GO_TOP_SYMBOLIC,
+	ICON_GO_UP,
+	ICON_GO_UP_SYMBOLIC,
+	ICON_HELP_ABOUT,
+	ICON_HELP_ABOUT_SYMBOLIC,
+	ICON_HELP_CONTENTS,
+	ICON_HELP_CONTENTS_SYMBOLIC,
+	ICON_HELP_INFO_SYMBOLIC,
+	ICON_IMAGE_ADJUST,
+	ICON_IMAGE_AUTO_ADJUST,
+	ICON_IMAGE_CROP,
+	ICON_IMAGE_CROP_SYMBOLIC,
+	ICON_IMAGE_RED_EYE,
+	ICON_IMAGE_RED_EYE_SYMBOLIC,
+	ICON_INSERT_IMAGE,
+	ICON_INSERT_IMAGE_SYMBOLIC,
+	ICON_INSERT_LINK,
+	ICON_INSERT_LINK_SYMBOLIC,
+	ICON_INSERT_OBJECT,
+	ICON_INSERT_OBJECT_SYMBOLIC,
+	ICON_INSERT_TEXT_SYMBOLIC,
+	ICON_LIST_ADD,
+	ICON_LIST_ADD_SYMBOLIC,
+	ICON_LIST_REMOVE,
+	ICON_LIST_REMOVE_SYMBOLIC,
+	ICON_MAIL_ARCHIVE,
+	ICON_MAIL_FORWARD,
+	ICON_MAIL_FORWARD_SYMBOLIC,
+	ICON_MAIL_MARK_IMPORTANT,
+	ICON_MAIL_MARK_IMPORTANT_SYMBOLIC,
+	ICON_MAIL_MARK_JUNK,
+	ICON_MAIL_MARK_JUNK_SYMBOLIC,
+	ICON_MAIL_MARK_NOTJUNK,
+	ICON_MAIL_MARK_NOTJUNK_SYMBOLIC,
+	ICON_MAIL_MESSAGE_NEW,
+	ICON_MAIL_MESSAGE_NEW_SYMBOLIC,
+	ICON_MAIL_MOVE,
+	ICON_MAIL_MOVE_SYMBOLIC,
+	ICON_MAIL_REPLY_ALL,
+	ICON_MAIL_REPLY_ALL_SYMBOLIC,
+	ICON_MAIL_REPLY_SENDER,
+	ICON_MAIL_REPLY_SENDER_SYMBOLIC,
+	ICON_MAIL_SEND,
+	ICON_MAIL_SEND_RECEIVE_SYMBOLIC,
+	ICON_MAIL_SEND_SYMBOLIC,
+	ICON_MARK_LOCATION_SYMBOLIC,
+	ICON_MEDIA_EJECT,
+	ICON_MEDIA_EJECT_SYMBOLIC,
+	ICON_MEDIA_EQ_SYMBOLIC,
+	ICON_MEDIA_PLAYBACK_PAUSE,
+	ICON_MEDIA_PLAYBACK_PAUSE_SYMBOLIC,
+	ICON_MEDIA_PLAYBACK_START,
+	ICON_MEDIA_PLAYBACK_START_SYMBOLIC,
+	ICON_MEDIA_PLAYBACK_STOP,
+	ICON_MEDIA_PLAYBACK_STOP_SYMBOLIC,
+	ICON_MEDIA_RECORD,
+	ICON_MEDIA_RECORD_SYMBOLIC,
+	ICON_MEDIA_SEEK_BACKWARD,
+	ICON_MEDIA_SEEK_BACKWARD_SYMBOLIC,
+	ICON_MEDIA_SEEK_FORWARD,
+	ICON_MEDIA_SEEK_FORWARD_SYMBOLIC,
+	ICON_MEDIA_SKIP_BACKWARD,
+	ICON_MEDIA_SKIP_FORWARD,
+	ICON_MEDIA_VIEW_SUBTITLES_SYMBOLIC,
+	ICON_NODE_ADD,
+	ICON_NODE_ALIGN_HORIZONTAL,
+	ICON_NODE_ALIGN_VERTICAL,
+	ICON_NODE_BREAK,
+	ICON_NODE_CUSP,
+	ICON_NODE_DELETE,
+	ICON_NODE_DELETE_SEGMENT,
+	ICON_NODE_DISTRIBUTE_HORIZONTAL,
+	ICON_NODE_DISTRIBUTE_VERTICAL,
+	ICON_NODE_INSERT,
+	ICON_NODE_JOIN,
+	ICON_NODE_JOIN_SEGMENT,
+	ICON_NODE_SMOOTH,
+	ICON_NODE_SYMMETRIC,
+	ICON_OBJECT_FLIP_HORIZONTAL,
+	ICON_OBJECT_FLIP_HORIZONTAL_SYMBOLIC,
+	ICON_OBJECT_FLIP_VERTICAL,
+	ICON_OBJECT_FLIP_VERTICAL_SYMBOLIC,
+	ICON_OBJECT_GROUP,
+	ICON_OBJECT_GROUP_SYMBOLIC,
+	ICON_OBJECT_INVERSE,
+	ICON_OBJECT_INVERSE_SYMBOLIC,
+	ICON_OBJECT_MERGE,
+	ICON_OBJECT_ROTATE_LEFT,
+	ICON_OBJECT_ROTATE_LEFT_SYMBOLIC,
+	ICON_OBJECT_ROTATE_RIGHT,
+	ICON_OBJECT_ROTATE_RIGHT_SYMBOLIC,
+	ICON_OBJECT_SELECT_SYMBOLIC,
+	ICON_OBJECT_STRAIGHTEN,
+	ICON_OBJECT_TO_PATH,
+	ICON_OBJECT_UNGROUP,
+	ICON_OBJECT_UNGROUP_SYMBOLIC,
+	ICON_OPEN_MENU,
+	ICON_OPEN_MENU_SYMBOLIC,
+	ICON_PAN_DOWN_SYMBOLIC,
+	ICON_PANE_HIDE_SYMBOLIC,
+	ICON_PAN_END_SYMBOLIC,
+	ICON_PANE_SHOW_SYMBOLIC,
+	ICON_PAN_START_SYMBOLIC,
+	ICON_PAN_UP_SYMBOLIC,
+	ICON_PATH_BREAK_APART,
+	ICON_PATH_BREAK_APART_SYMBOLIC,
+	ICON_PATH_COMBINE,
+	ICON_PATH_COMBINE_SYMBOLIC,
+	ICON_PATH_DIFFERENCE,
+	ICON_PATH_DIFFERENCE_SYMBOLIC,
+	ICON_PATH_DIVISION,
+	ICON_PATH_DIVISION_SYMBOLIC,
+	ICON_PATH_EXCLUSION,
+	ICON_PATH_EXCLUSION_SYMBOLIC,
+	ICON_PATH_INTERSECTION,
+	ICON_PATH_INTERSECTION_SYMBOLIC,
+	ICON_PATH_UNION,
+	ICON_PATH_UNION_SYMBOLIC,
+	ICON_PROCESS_STOP,
+	ICON_PROCESS_STOP_SYMBOLIC,
+	ICON_SEGMENT_CURVE,
+	ICON_SEGMENT_LINE,
+	ICON_SELECTION_ADD,
+	ICON_SELECTION_BOTTOM,
+	ICON_SELECTION_BOTTOM_SYMBOLIC,
+	ICON_SELECTION_CHECKED,
+	ICON_SELECTION_END_SYMBOLIC,
+	ICON_SELECTION_LOWER,
+	ICON_SELECTION_LOWER_SYMBOLIC,
+	ICON_SELECTION_RAISE,
+	ICON_SELECTION_RAISE_SYMBOLIC,
+	ICON_SELECTION_REMOVE,
+	ICON_SELECTION_START_SYMBOLIC,
+	ICON_SELECTION_TOP,
+	ICON_SELECTION_TOP_SYMBOLIC,
+	ICON_SEND_TO,
+	ICON_SEND_TO_SYMBOLIC,
+	ICON_STAR_NEW_SYMBOLIC,
+	ICON_STROKE_TO_PATH,
+	ICON_SYSTEM_LOCK_SCREEN,
+	ICON_SYSTEM_LOCK_SCREEN_SYMBOLIC,
+	ICON_SYSTEM_LOG_OUT,
+	ICON_SYSTEM_REBOOT,
+	ICON_SYSTEM_RUN,
+	ICON_SYSTEM_RUN_SYMBOLIC,
+	ICON_SYSTEM_SHUTDOWN,
+	ICON_SYSTEM_SHUTDOWN_SYMBOLIC,
+	ICON_SYSTEM_SUSPEND,
+	ICON_TAB_NEW_SYMBOLIC,
+	ICON_TAG_NEW,
+	ICON_TAG_NEW_SYMBOLIC,
+	ICON_TOOL_MEASURE,
+	ICON_TOOL_NODE_EDITOR,
+	ICON_TOOLS_CHECK_SPELLING_SYMBOLIC,
+	ICON_TOOLS_TIMER_SYMBOLIC,
+	ICON_VIEW_COLUMN_SYMBOLIC,
+	ICON_VIEW_CONTINUOUS_SYMBOLIC,
+	ICON_VIEW_DUAL_SYMBOLIC,
+	ICON_VIEW_FILTER_SYMBOLIC,
+	ICON_VIEW_FULLSCREEN_SYMBOLIC,
+	ICON_VIEW_GRID_SYMBOLIC,
+	ICON_VIEW_LIST_COMPACT_SYMBOLIC,
+	ICON_VIEW_LIST_IMAGES_SYMBOLIC,
+	ICON_VIEW_LIST_SYMBOLIC,
+	ICON_VIEW_LIST_VIDEO_SYMBOLIC,
+	ICON_VIEW_MORE_HORIZONTAL_SYMBOLIC,
+	ICON_VIEW_MORE_SYMBOLIC,
+	ICON_VIEW_PAGED_SYMBOLIC,
+	ICON_VIEW_PIN_SYMBOLIC,
+	ICON_VIEW_READER,
+	ICON_VIEW_READER_SYMBOLIC,
+	ICON_VIEW_REFRESH,
+	ICON_VIEW_REFRESH_SYMBOLIC,
+	ICON_VIEW_RESTORE_SYMBOLIC,
+	ICON_VIEW_SORT_ASCENDING_SYMBOLIC,
+	ICON_VIEW_SORT_DESCENDING_SYMBOLIC,
+	ICON_WINDOW_CLOSE,
+	ICON_WINDOW_CLOSE_SYMBOLIC,
+	ICON_WINDOW_MAXIMIZE_SYMBOLIC,
+	ICON_WINDOW_MINIMIZE_SYMBOLIC,
+	ICON_WINDOW_NEW,
+	ICON_WINDOW_NEW_SYMBOLIC,
+	ICON_WINDOW_POP_OUT_SYMBOLIC,
+	ICON_WINDOW_RESTORE_SYMBOLIC,
+	ICON_ZOOM_FIT_BEST,
+	ICON_ZOOM_FIT_BEST_SYMBOLIC,
+	ICON_ZOOM_IN,
+	ICON_ZOOM_IN_SYMBOLIC,
+	ICON_ZOOM_ORIGINAL,
+	ICON_ZOOM_ORIGINAL_SYMBOLIC,
+	ICON_ZOOM_OUT,
+	ICON_ZOOM_OUT_SYMBOLIC,
+	ICON_ACCESSORIES_CALCULATOR,
+	ICON_ACCESSORIES_CALCULATOR_SYMBOLIC,
+	ICON_ACCESSORIES_SCREENSHOT,
+	ICON_ACCESSORIES_TEXT_EDITOR,
+	ICON_ACCESSORIES_TEXT_EDITOR_SYMBOLIC,
+	ICON_APPLICATION_DEFAULT_ICON,
+	ICON_ARCHIVE_MANAGER,
+	ICON_INTERNET_CHAT,
+	ICON_INTERNET_CHAT_SYMBOLIC,
+	ICON_INTERNET_MAIL,
+	ICON_INTERNET_MAIL_SYMBOLIC,
+	ICON_INTERNET_NEWS_READER,
+	ICON_INTERNET_NEWS_READER_SYMBOLIC,
+	ICON_INTERNET_WEB_BROWSER,
+	ICON_INTERNET_WEB_BROWSER_SYMBOLIC,
+	ICON_MULTIMEDIA_AUDIO_PLAYER,
+	ICON_MULTIMEDIA_PHOTO_MANAGER,
+	ICON_MULTIMEDIA_VIDEO_PLAYER,
+	ICON_OFFICE_ADDRESS_BOOK,
+	ICON_OFFICE_CALENDAR,
+	ICON_OFFICE_CALENDAR_SYMBOLIC,
+	ICON_ONBOARD,
+	ICON_POSTSCRIPT_VIEWER,
+	ICON_PREFERENCES_DESKTOP,
+	ICON_PREFERENCES_DESKTOP_FONT,
+	ICON_SYSTEM_FILE_MANAGER,
+	ICON_SYSTEM_OS_INSTALLER,
+	ICON_SYSTEM_SOFTWARE_INSTALL,
+	ICON_SYSTEM_SOFTWARE_INSTALL_SYMBOLIC,
+	ICON_SYSTEM_SOFTWARE_UPDATE,
+	ICON_SYSTEM_SOFTWARE_UPDATE_SYMBOLIC,
+	ICON_SYSTEM_USERS,
+	ICON_SYSTEM_USERS_SYMBOLIC,
+	ICON_UTILITIES_SYSTEM_MONITOR,
+	ICON_UTILITIES_TERMINAL,
+	ICON_UTILITIES_TERMINAL_SYMBOLIC,
+	ICON_APPLICATIONS_ACCESSORIES,
+	ICON_APPLICATIONS_AUDIO_SYMBOLIC,
+	ICON_APPLICATIONS_DEVELOPMENT,
+	ICON_APPLICATIONS_DEVELOPMENT_SYMBOLIC,
+	ICON_APPLICATIONS_EDUCATION,
+	ICON_APPLICATIONS_EDUCATION_SYMBOLIC,
+	ICON_APPLICATIONS_ENGINEERING_SYMBOLIC,
+	ICON_APPLICATIONS_FONTS,
+	ICON_APPLICATIONS_GAMES,
+	ICON_APPLICATIONS_GAMES_SYMBOLIC,
+	ICON_APPLICATIONS_GRAPHICS,
+	ICON_APPLICATIONS_GRAPHICS_SYMBOLIC,
+	ICON_APPLICATIONS_INTERFACEDESIGN,
+	ICON_APPLICATIONS_INTERNET_SYMBOLIC,
+	ICON_APPLICATIONS_MULTIMEDIA,
+	ICON_APPLICATIONS_MULTIMEDIA_SYMBOLIC,
+	ICON_APPLICATIONS_OFFICE,
+	ICON_APPLICATIONS_OFFICE_SYMBOLIC,
+	ICON_APPLICATIONS_OTHER,
+	ICON_APPLICATIONS_OTHER_SYMBOLIC,
+	ICON_APPLICATIONS_PHOTOGRAPHY,
+	ICON_APPLICATIONS_SCIENCE,
+	ICON_APPLICATIONS_SCIENCE_SYMBOLIC,
+	ICON_APPLICATIONS_UTILITIES,
+	ICON_APPLICATIONS_UTILITIES_SYMBOLIC,
+	ICON_APPLICATIONS_VIDEO_SYMBOLIC,
+	ICON_BUG,
+	ICON_BUG_SYMBOLIC,
+	ICON_EMOJI_ACTIVITY_SYMBOLIC,
+	ICON_EMOJI_BODY_SYMBOLIC,
+	ICON_EMOJI_FOOD_SYMBOLIC,
+	ICON_EMOJI_NATURE_SYMBOLIC,
+	ICON_EMOJI_OBJECTS_SYMBOLIC,
+	ICON_EMOJI_TRAVEL_SYMBOLIC,
+	ICON_EVENT_BIRTHDAY_SYMBOLIC,
+	ICON_PREFERENCES_BLUETOOTH_SYMBOLIC,
+	ICON_PREFERENCES_COLOR,
+	ICON_PREFERENCES_COLOR_SYMBOLIC,
+	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY,
+	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY_POINTING,
+	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY_SYMBOLIC,
+	ICON_PREFERENCES_DESKTOP_ACCESSIBILITY_ZOOM,
+	ICON_PREFERENCES_DESKTOP_APPLICATIONS,
+	ICON_PREFERENCES_DESKTOP_DISPLAY,
+	ICON_PREFERENCES_DESKTOP_DISPLAY_SYMBOLIC,
+	ICON_PREFERENCES_DESKTOP_KEYBOARD,
+	ICON_PREFERENCES_DESKTOP_KEYBOARD_SYMBOLIC,
+	ICON_PREFERENCES_DESKTOP_LOCALE,
+	ICON_PREFERENCES_DESKTOP_LOCALE_SYMBOLIC,
+	ICON_PREFERENCES_DESKTOP_ONLINE_ACCOUNTS,
+	ICON_PREFERENCES_DESKTOP_ONLINE_ACCOUNTS_SYMBOLIC,
+	ICON_PREFERENCES_DESKTOP_PERIPHERALS,
+	ICON_PREFERENCES_DESKTOP_SOUND,
+	ICON_PREFERENCES_DESKTOP_WALLPAPER,
+	ICON_PREFERENCES_DESKTOP_WORKSPACES,
+	ICON_PREFERENCES_OTHER_SYMBOLIC,
+	ICON_PREFERENCES_SYSTEM,
+	ICON_PREFERENCES_SYSTEM_NETWORK,
+	ICON_PREFERENCES_SYSTEM_NETWORK_SYMBOLIC,
+	ICON_PREFERENCES_SYSTEM_NOTIFICATIONS,
+	ICON_PREFERENCES_SYSTEM_PARENTAL_CONTROLS,
+	ICON_PREFERENCES_SYSTEM_PARENTAL_CONTROL_SYMBOLIC,
+	ICON_PREFERENCES_SYSTEM_POWER,
+	ICON_PREFERENCES_SYSTEM_POWER_SYMBOLIC,
+	ICON_PREFERENCES_SYSTEM_PRIVACY_HOUSEKEEPING,
+	ICON_PREFERENCES_SYSTEM_SHARING,
+	ICON_PREFERENCES_SYSTEM_SHARING_SYMBOLIC,
+	ICON_PREFERENCES_SYSTEM_TIME,
+	ICON_PREFERENCES_SYSTEM_TIME_SYMBOLIC,
+	ICON_PREFERENCES_SYSTEM_WINDOWS,
+	ICON_AC_ADAPTER_SYMBOLIC,
+	ICON_AUDIO_CARD_SYMBOLIC,
+	ICON_AUDIO_HEADPHONES,
+	ICON_AUDIO_HEADPHONES_SYMBOLIC,
+	ICON_AUDIO_HEADSETS,
+	ICON_AUDIO_HEADSET_SYMBOLIC,
+	ICON_AUDIO_INPUT_MICROPHONE,
+	ICON_AUDIO_INPUT_MICROPHONE_SYMBOLIC,
+	ICON_AUDIO_SPEAKER_CENTER,
+	ICON_AUDIO_SPEAKER_CENTER_BACK,
+	ICON_AUDIO_SPEAKER_CENTER_BACK_TESTING,
+	ICON_AUDIO_SPEAKER_CENTER_TESTING,
+	ICON_AUDIO_SPEAKER_LEFT,
+	ICON_AUDIO_SPEAKER_LEFT_BACK,
+	ICON_AUDIO_SPEAKER_LEFT_BACK_TESTING,
+	ICON_AUDIO_SPEAKER_LEFT_SIDE,
+	ICON_AUDIO_SPEAKER_LEFT_SIDE_TESTING,
+	ICON_AUDIO_SPEAKER_LEFT_TESTING,
+	ICON_AUDIO_SPEAKER_RIGHT,
+	ICON_AUDIO_SPEAKER_RIGHT_BACK,
+	ICON_AUDIO_SPEAKER_RIGHT_BACK_TESTING,
+	ICON_AUDIO_SPEAKER_RIGHT_SIDE,
+	ICON_AUDIO_SPEAKER_RIGHT_SIDE_TESTING,
+	ICON_AUDIO_SPEAKER_RIGHT_TESTING,
+	ICON_AUDIO_SPEAKERS,
+	ICON_AUDIO_SPEAKERS_SYMBOLIC,
+	ICON_AUDIO_SUBWOOFER,
+	ICON_AUDIO_SUBWOOFER_TESTING,
+	ICON_BATTERY,
+	ICON_BATTERY_SYMBOLIC,
+	ICON_BLUETOOTH,
+	ICON_BLUETOOTH_SYMBOLIC,
+	ICON_CAMERA_PHOTO,
+	ICON_CAMERA_PHOTO_SYMBOLIC,
+	ICON_CAMERA_VIDEO,
+	ICON_CAMERA_VIDEO_SYMBOLIC,
+	ICON_CAMERA_WEB,
+	ICON_CAMERA_WEB_SYMBOLIC,
+	ICON_COLORIMETER_COLORHUG_SYMBOLIC,
+	ICON_COMPUTER_LAPTOP,
+	ICON_COMPUTER_LAPTOP_SYMBOLIC,
+	ICON_DISPLAY_PROJECTOR_SYMBOLIC,
+	ICON_DRIVE_HARDDISK,
+	ICON_DRIVE_HARDDISK_IEEE1394_SYMBOLIC,
+	ICON_DRIVE_HARDDISK_SOLIDSTATE,
+	ICON_DRIVE_HARDDISK_SOLIDSTATE_SYMBOLIC,
+	ICON_DRIVE_HARDDISK_SYMBOLIC,
+	ICON_DRIVE_MULTIDISK_SYMBOLIC,
+	ICON_DRIVE_OPTICAL_SYMBOLIC,
+	ICON_DRIVE_REMOVABLE_MEDIA,
+	ICON_DRIVE_REMOVABLE_MEDIA_SYMBOLIC,
+	ICON_DRIVE_REMOVABLE_MEDIA_USB,
+	ICON_FINGERPRINT,
+	ICON_FINGERPRINT_SYMBOLIC,
+	ICON_GNOME_DEV_PRINTER_NEW,
+	ICON_INPUT_DIALPAD_SYMBOLIC,
+	ICON_INPUT_GAMING,
+	ICON_INPUT_GAMING_SYMBOLIC,
+	ICON_INPUT_KEYBOARD,
+	ICON_INPUT_KEYBOARD_SYMBOLIC,
+	ICON_INPUT_MOUSE,
+	ICON_INPUT_MOUSE_SYMBOLIC,
+	ICON_INPUT_TABLET,
+	ICON_INPUT_TABLET_SYMBOLIC,
+	ICON_INPUT_TOUCHPAD,
+	ICON_INPUT_TOUCHPAD_SYMBOLIC,
+	ICON_MEDIA_FLASH_CF,
+	ICON_MEDIA_FLASH_MS,
+	ICON_MEDIA_FLASH_SYMBOLIC,
+	ICON_MEDIA_FLOPPY_SYMBOLIC,
+	ICON_MEDIA_MEMORY,
+	ICON_MEDIA_MEMORY_SD,
+	ICON_MEDIA_MEMORY_SEMBOLIC,
+	ICON_MEDIA_MEMORY_SM,
+	ICON_MEDIA_OPTICAL,
+	ICON_MEDIA_OPTICAL_SYMBOLIC,
+	ICON_MEDIA_REMOVABLE_SYMBOLIC,
+	ICON_MEDIA_TAPE_SYMBOLIC,
+	ICON_MEDIA_ZIP_SYMBOLIC,
+	ICON_MODEM,
+	ICON_MODEM_SYMBOLIC,
+	ICON_MULTIMEDIA_PLAYER,
+	ICON_MULTIMEDIA_PLAYER_SYMBOLIC,
+	ICON_NETWORK_CELLULAR,
+	ICON_NETWORK_FIREWALL,
+	ICON_NETWORK_VPN,
+	ICON_NETWORK_WIRED,
+	ICON_NETWORK_WIRELESS,
+	ICON_NETWORK_WIRELESS_HOTSPOT,
+	ICON_NM_DEVICE_WWAN,
+	ICON_PDA_SYMBOLIC,
+	ICON_PHONE,
+	ICON_PHONE_SYMBOLIC,
+	ICON_PRINTER,
+	ICON_PRINTER_NETWORK,
+	ICON_PRINTER_SYMBOLIC,
+	ICON_SCANNER,
+	ICON_SCANNER_SYMBOLIC,
+	ICON_TABLET,
+	ICON_TABLET_SYMBOLIC,
+	ICON_TV_SYMBOLIC,
+	ICON_UNINTERRUPTIBLE_POWER_SUPPLY,
+	ICON_UNINTERRUPTIBLE_POWER_SUPPLY_SYMBOLIC,
+	ICON_VIDEO_DISPLAY,
+	ICON_VIDEO_DISPLAY_SYMBOLIC,
+	ICON_EMBLEM_DEFAULT_SYMBOLIC,
+	ICON_EMBLEM_DOCUMENTS_SYMBOLIC,
+	ICON_EMBLEM_FAVORITE_SYMBOLIC,
+	ICON_EMBLEM_IMPORTANT_SYMBOLIC,
+	ICON_EMBLEM_MUSIC_SYMBOLIC,
+	ICON_EMBLEM_OK_SYMBOLIC,
+	ICON_EMBLEM_PHOTOS_SYMBOLIC,
+	ICON_EMBLEM_READONLY,
+	ICON_EMBLEM_SHARED_SYMBOLIC,
+	ICON_EMBLEM_SYMBOLIC_LINK,
+	ICON_EMBLEM_SYNCHRONIZED,
+	ICON_EMBLEM_SYNCHRONIZING_SYMBOLIC,
+	ICON_EMBLEM_UNREADABLE,
+	ICON_EMBLEM_VIDEOS_SYMBOLIC,
+	ICON_FACE_ANGEL,
+	ICON_FACE_ANGEL_SYMBOLIC,
+	ICON_FACE_ANGRY,
+	ICON_FACE_ANGRY_SYMBOLIC,
+	ICON_FACE_COOL,
+	ICON_FACE_COOL_SYMBOLIC,
+	ICON_FACE_CRYING,
+	ICON_FACE_CRYING_SYMBOLIC,
+	ICON_FACE_DEVILISH,
+	ICON_FACE_DEVILISH_SYMBOLIC,
+	ICON_FACE_EMBARRASSED,
+	ICON_FACE_EMBARRASSED_SYMBOLIC,
+	ICON_FACE_HEART,
+	ICON_FACE_HEART_BROKEN,
+	ICON_FACE_HEART_BROKEN_SYMBOLIC,
+	ICON_FACE_HEART_SYMBOLIC,
+	ICON_FACE_KISS,
+	ICON_FACE_KISS_SYMBOLIC,
+	ICON_FACE_LAUGH,
+	ICON_FACE_LAUGH_SYMBOLIC,
+	ICON_FACE_MONKEY_SYMBOLIC,
+	ICON_FACE_PLAIN,
+	ICON_FACE_PLAIN_SYMBOLIC,
+	ICON_FACE_RASPBERRY,
+	ICON_FACE_RASPBERRY_SYMBOLIC,
+	ICON_FACE_SAD,
+	ICON_FACE_SAD_SYMBOLIC,
+	ICON_FACE_SICK,
+	ICON_FACE_SICK_SYMBOLIC,
+	ICON_FACE_SMILE,
+	ICON_FACE_SMILE_BIG,
+	ICON_FACE_SMILE_BIG_SYMBOLIC,
+	ICON_FACE_SMILE_SYMBOLIC,
+	ICON_FACE_SMIRK,
+	ICON_FACE_SMIRK_SYMBOLIC,
+	ICON_FACE_SURPRISE,
+	ICON_FACE_SURPRISE_SYMBOLIC,
+	ICON_FACE_TIRED,
+	ICON_FACE_TIRED_SYMBOLIC,
+	ICON_FACE_UNCERTAIN,
+	ICON_FACE_UNCERTAIN_SYMBOLIC,
+	ICON_FACE_WINK,
+	ICON_FACE_WINK_SYMBOLIC,
+	ICON_FACE_WORRIED,
+	ICON_FACE_WORRIED_SYMBOLIC,
+	ICON_APPLICATION_CERTIFICATE_SYMBOLIC,
+	ICON_APPLICATION_EPUB_ZIP,
+	ICON_APPLICATION_ILLUSTRATOR,
+	ICON_APPLICATION_JAVASCRIPT,
+	ICON_APPLICATION_MSWORD,
+	ICON_APPLICATION_OCTET_STREAM,
+	ICON_APPLICATION_PDF,
+	ICON_APPLICATION_PGP,
+	ICON_APPLICATION_RSS_XML_SYMBOLIC,
+	ICON_APPLICATION_VND,
+	ICON_APPLICATION_X_APPLIANCE_SYMBOLIC,
+	ICON_APPLICATION_X_BITTORRENT,
+	ICON_APPLICATION_X_CD_IMAGE,
+	ICON_APPLICATION_X_DESKTOP,
+	ICON_APPLICATION_X_EXECUTABLE_SYMBOLIC,
+	ICON_APPLICATION_X_FICTIONBOOK_XML,
+	ICON_APPLICATION_X_FIRMWARE,
+	ICON_APPLICATION_X_FIRMWARE_SYMBOLIC,
+	ICON_APPLICATION_X_FLASH_VIDEO,
+	ICON_APPLICATION_X_MS_DOS_EXECUTABLE,
+	ICON_APPLICATION_X_PARTIAL_DOWNLOAD,
+	ICON_APPLICATION_X_PHP,
+	ICON_APPLICATION_X_RUBY,
+	ICON_AUDIO_X_GENERIC,
+	ICON_AUDIO_X_GENERIC_SYMBOLIC,
+	ICON_AUDIO_X_PLAYLIST,
+	ICON_EXTENSION,
+	ICON_FONT_X_GENERIC,
+	ICON_FONT_X_GENERIC_SYMBOLIC,
+	ICON_IMAGE_VND,
+	ICON_IMAGE_X_GENERIC,
+	ICON_IMAGE_X_GENERIC_SYMBOLIC,
+	ICON_IMAGE_X_XCF,
+	ICON_INTERNET_FEED,
+	ICON_MODEL,
+	ICON_OFFICE_CONTACT,
+	ICON_OFFICE_DATABASE,
+	ICON_PACKAGE_X_GENERIC,
+	ICON_PACKAGE_X_GENERIC_SYMBOLIC,
+	ICON_PAYMENT_CARD,
+	ICON_PAYMENT_CARD_AMEX,
+	ICON_PAYMENT_CARD_DINERS_CLUB,
+	ICON_PAYMENT_CARD_DISCOVER,
+	ICON_PAYMENT_CARD_JCB,
+	ICON_PAYMENT_CARD_MASTERCARD,
+	ICON_PAYMENT_CARD_SYMBOLIC,
+	ICON_PAYMENT_CARD_UNIONPAY,
+	ICON_PAYMENT_CARD_VISA,
+	ICON_TEXT,
+	ICON_TEXT_CSS,
+	ICON_TEXT_HTML,
+	ICON_TEXT_HTML_SYMBOLIC,
+	ICON_TEXT_MARKDOWN,
+	ICON_TEXT_X_BIBTEX,
+	ICON_TEXT_X_CHANGELOG,
+	ICON_TEXT_X_CHDR,
+	ICON_TEXT_X_COPYING,
+	ICON_TEXT_X_COPYING_SYMBOLIC,
+	ICON_TEXT_X_CSRC,
+	ICON_TEXT_X_GENERIC_SYMBOLIC,
+	ICON_TEXT_X_GENERIC_TEMPLATE,
+	ICON_TEXT_X_GETTEXT_TRANSLATION,
+	ICON_TEXT_X_GETTEXT_TRANSLATION_TEMPLATE,
+	ICON_TEXT_X_GO,
+	ICON_TEXT_X_INSTALL,
+	ICON_TEXT_X_MAKEFILE,
+	ICON_TEXT_X_PREVIEW,
+	ICON_TEXT_X_PYTHON,
+	ICON_TEXT_X_README,
+	ICON_TEXT_X_SASS,
+	ICON_TEXT_X_SCRIPT,
+	ICON_TEXT_X_SSA,
+	ICON_TEXT_X_TEX,
+	ICON_TEXT_X_VALA,
+	ICON_UNKNOWN,
+	ICON_VIDEO_X_GENERIC,
+	ICON_VIDEO_X_GENERIC_SYMBOLIC,
+	ICON_X_OFFICE_ADDRESS_BOOK_SYMBOLIC,
+	ICON_X_OFFICE_DOCUMENT,
+	ICON_X_OFFICE_DOCUMENT_SYMBOLIC,
+	ICON_X_OFFICE_DOCUMENT_TEMPLATE,
+	ICON_X_OFFICE_DRAWING,
+	ICON_X_OFFICE_DRAWING_SYMBOLIC,
+	ICON_X_OFFICE_DRAWING_TEMPLATE,
+	ICON_X_OFFICE_PRESENTATION,
+	ICON_X_OFFICE_PRESENTATION_SYMBOLIC,
+	ICON_X_OFFICE_PRESENTATION_TEMPLATE,
+	ICON_X_OFFICE_SPREADSHEET,
+	ICON_X_OFFICE_SPREADSHEET_SYMBOLIC,
+	ICON_X_OFFICE_SPREADSHEET_TEMPLATE,
+	ICON_BOOKMARK_MISSING,
+	ICON_DISTRIBUTOR_LOGO,
+	ICON_DISTRIBUTOR_LOGO_SYMBOLIC,
+	ICON_FOLDER,
+	ICON_FOLDER_DOCUMENTS,
+	ICON_FOLDER_DOCUMENTS_OPEN,
+	ICON_FOLDER_DOCUMENTS_SYMBOLIC,
+	ICON_FOLDER_DOWNLOAD,
+	ICON_FOLDER_DOWNLOAD_OPEN,
+	ICON_FOLDER_DOWNLOAD_SYMBOLIC,
+	ICON_FOLDER_MUSIC,
+	ICON_FOLDER_MUSIC_OPEN,
+	ICON_FOLDER_MUSIC_SYMBOLIC,
+	ICON_FOLDER_OPEN,
+	ICON_FOLDER_PICTURES,
+	ICON_FOLDER_PICTURES_OPEN,
+	ICON_FOLDER_PICTURES_SYMBOLIC,
+	ICON_FOLDER_PUBLICSHARE,
+	ICON_FOLDER_PUBLICSHARE_OPEN,
+	ICON_FOLDER_PUBLICSHARE_SYMBOLIC,
+	ICON_FOLDER_RECENT,
+	ICON_FOLDER_RECENT_SYMBOLIC,
+	ICON_FOLDER_REMOTE,
+	ICON_FOLDER_REMOTE_OPEN,
+	ICON_FOLDER_SAVED_SEARCH,
+	ICON_FOLDER_SYMBOLIC,
+	ICON_FOLDER_TAG,
+	ICON_FOLDER_TEMPLATES,
+	ICON_FOLDER_TEMPLATES_OPEN,
+	ICON_FOLDER_TEMPLATES_SYMBOLIC,
+	ICON_FOLDER_VIDEOS,
+	ICON_FOLDER_VIDEOS_OPEN,
+	ICON_FOLDER_VIDEOS_SYMBOLIC,
+	ICON_INTERNET_RADIO,
+	ICON_INTERNET_RADIO_SYMBOLIC,
+	ICON_LIBRARY_AUDIOBOOK,
+	ICON_LIBRARY_PLACES,
+	ICON_LIBRARY_PODCAST,
+	ICON_MAIL_INBOX,
+	ICON_MAIL_INBOX_SYMBOLIC,
+	ICON_MAIL_MAILBOX,
+	ICON_MAIL_MAILBOX_SYMBOLIC,
+	ICON_MAIL_OUTBOX,
+	ICON_MAIL_OUTBOX_SYMBOLIC,
+	ICON_NETWORK_SERVER_SYMBOLIC,
+	ICON_PLAYLIST,
+	ICON_PLAYLIST_AUTOMATIC,
+	ICON_PLAYLIST_QUEUE,
+	ICON_PLAYLIST_QUEUE_SYMBOLIC,
+	ICON_PLAYLIST_SIMILAR,
+	ICON_PLAYLIST_SYMBOLIC,
+	ICON_TAG_SYMBOLIC,
+	ICON_USER_BOOKMARKS_SYMBOLIC,
+	ICON_USER_HOME,
+	ICON_USER_HOME_OPEN,
+	ICON_USER_HOME_SYMBOLIC,
+	ICON_USER_TRASH,
+	ICON_USER_TRASH_FULL,
+	ICON_USER_TRASH_SYMBOLIC,
+	ICON_AIRPLANE_MODE,
+	ICON_AIRPLANE_MODE_SYMBOLIC,
+	ICON_ALARM_SYMBOLIC,
+	ICON_APPOINTMENT_MISSED,
+	ICON_APPOINTMENT_MISSED_SYMBOLIC,
+	ICON_APPOINTMENT_SOON,
+	ICON_APPOINTMENT_SOON_SYMBOLIC,
+	ICON_AUDIO_VOLUME_HIGH_SYMBOLIC,
+	ICON_AUDIO_VOLUME_LOW_SYMBOLIC,
+	ICON_AUDIO_VOLUME_MEDIUM_SYMBOLIC,
+	ICON_AUDIO_VOLUME_MUTED_BLOCKING_SYMBOLIC,
+	ICON_AUDIO_VOLUME_MUTED_SYMBOLIC,
+	ICON_AVATAR_DEFAULT,
+	ICON_AVATAR_DEFAULT_SYMBOLIC,
+	ICON_BATTERY_AC_ADAPTER,
+	ICON_BATTERY_AC_ADAPTER_SYMBOLIC,
+	ICON_BATTERY_CAUTION,
+	ICON_BATTERY_CAUTION_CHARGING,
+	ICON_BATTERY_CAUTION_CHARGING_SYMBOLIC,
+	ICON_BATTERY_CAUTION_SYMBOLIC,
+	ICON_BATTERY_EMPTY,
+	ICON_BATTERY_EMPTY_CHARGING,
+	ICON_BATTERY_EMPTY_CHARGING_SYMBOLIC,
+	ICON_BATTERY_EMPTY_SYMBOLIC,
+	ICON_BATTERY_FULL,
+	ICON_BATTERY_FULL_CHARGED,
+	ICON_BATTERY_FULL_CHARGED_SYMBOLIC,
+	ICON_BATTERY_FULL_CHARGING,
+	ICON_BATTERY_FULL_CHARGING_SYMBOLIC,
+	ICON_BATTERY_FULL_SYMBOLIC,
+	ICON_BATTERY_GOOD,
+	ICON_BATTERY_GOOD_CHARGING,
+	ICON_BATTERY_GOOD_CHARGING_SYMBOLIC,
+	ICON_BATTERY_GOOD_SYMBOLIC,
+	ICON_BATTERY_LOW,
+	ICON_BATTERY_LOW_CHARGING,
+	ICON_BATTERY_LOW_CHARGING_SYMBOLIC,
+	ICON_BATTERY_LOW_SYMBOLIC,
+	ICON_BATTERY_MISSING,
+	ICON_BATTERY_MISSING_SYMBOLIC,
+	ICON_BLUETOOTH_ACTIVE_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED,
+	ICON_BLUETOOTH_DISABLED_10_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_20_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_30_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_40_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_50_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_60_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_70_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_80_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_90_SYMBOLIC,
+	ICON_BLUETOOTH_DISABLED_SYMBOLIC,
+	ICON_BLUETOOTH_PAIRED_SYMBOLIC,
+	ICON_CALL_MISSED_SYMBOLIC,
+	ICON_CHANGES_ALLOW,
+	ICON_CHANGES_ALLOW_SYMBOLIC,
+	ICON_CHANGES_PREVENT_SYMBOLIC,
+	ICON_CHANNEL_INSECURE_SYMBOLIC,
+	ICON_CHANNEL_SECURE_SYMBOLIC,
+	ICON_CHECK_ACTIVE_SYMBOLIC,
+	ICON_CHECKBOX_CHECKED_SYMBOLIC,
+	ICON_CHECKBOX_MIXED_SYMBOLIC,
+	ICON_CHECKBOX_SYMBOLIC,
+	ICON_CHECK_MIXED_SYMBOLIC,
+	ICON_COMPUTER_FAIL_SYMBOLIC,
+	ICON_CONTENT_LOADING_SYMBOLIC,
+	ICON_DAYTIME_SUNRISE_SYMBOLIC,
+	ICON_DAYTIME_SUNSET_SYMBOLIC,
+	ICON_DIALOG_ERROR,
+	ICON_DIALOG_ERROR_SYMBOLIC,
+	ICON_DIALOG_INFORMATION,
+	ICON_DIALOG_INFORMATION_SYMBOLIC,
+	ICON_DIALOG_PASSWORD,
+	ICON_DIALOG_PASSWORD_SYMBOLIC,
+	ICON_DIALOG_WARNING,
+	ICON_DIALOG_WARNING_SYMBOLIC,
+	ICON_DISPLAY_BRIGHTNESS_SYMBOLIC,
+	ICON_FOLDER_OPEN_SYMBOLIC,
+	ICON_FOLDER_VISITING_SYMBOLIC,
+	ICON_IMAGE_LOADING,
+	ICON_IMAGE_MISSING,
+	ICON_INPUT_KEYBOARD_CAPSLOCK_SYMBOLIC,
+	ICON_INPUT_KEYBOARD_NUMLOCK_SYMBOLIC,
+	ICON_KEYBOARD_BRIGHTNESS_SYMBOLIC,
+	ICON_LOCATION_ACTIVE_SYMBOLIC,
+	ICON_LOCATION_DISABLED_SYMBOLIC,
+	ICON_LOCATION_INACTIVE_SYMBOLIC,
+	ICON_LOCKED,
+	ICON_MAIL_ATTACHMENT_SYMBOLIC,
+	ICON_MAIL_FORWARDED_SYMBOLIC,
+	ICON_MAIL_IMPORTANT_SYMBOLIC,
+	ICON_MAIL_READ_SYMBOLIC,
+	ICON_MAIL_REPLIED_SYMBOLIC,
+	ICON_MAIL_UNREAD,
+	ICON_MAIL_UNREAD_SYMBOLIC,
+	ICON_MEDIA_PLAYLIST_CONSECUTIVE_SYMBOLIC,
+	ICON_MEDIA_PLAYLIST_NO_REPEAT_SYMBOLIC,
+	ICON_MEDIA_PLAYLIST_REPEAT,
+	ICON_MEDIA_PLAYLIST_REPEAT_SONG_SYMBOLIC,
+	ICON_MEDIA_PLAYLIST_REPEAT_SYMBOLIC,
+	ICON_MEDIA_PLAYLIST_SHUFFLE_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_HIGH_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_LOW_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MEDIUM_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_10_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_20_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_30_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_40_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_50_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_60_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_70_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_80_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_90_SYMBOLIC,
+	ICON_MICROPHONE_SENSITIVITY_MUTED_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_ACQUIRING_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_CONNECTED_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_NO_ROUTE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_OFFLINE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_EXCELLENT_SECURE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_EXCELLENT_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_GOOD_SECURE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_GOOD_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_NONE_SECURE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_NONE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_OK_SECURE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_OK_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_WEAK_SECURE_SYMBOLIC,
+	ICON_NETWORK_CELLULAR_SIGNAL_WEAK_SYMBOLIC,
+	ICON_NETWORK_ERROR,
+	ICON_NETWORK_ERROR_SYMBOLIC,
+	ICON_NETWORK_IDLE,
+	ICON_NETWORK_OFFLINE_SYMBOLIC,
+	ICON_NETWORK_VPN_ACQUIRING_SYMBOLIC,
+	ICON_NETWORK_VPN_LOCK_SYMBOLIC,
+	ICON_NETWORK_VPN_SYMBOLIC,
+	ICON_NETWORK_WIRED_ACQUIRING_SYMBOLIC,
+	ICON_NETWORK_WIRED_DISCONNECTED,
+	ICON_NETWORK_WIRED_NO_ROUTE_SYMBOLIC,
+	ICON_NETWORK_WIRED_OFFLINE_SYMBOLIC,
+	ICON_NETWORK_WIRED_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_ACQUIRING_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_CONNECTED_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_ENCRYPTED_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_HOTSPOT_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_NO_ROUTE_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_OFFLINE_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_EXCELLENT,
+	ICON_NETWORK_WIRELESS_SIGNAL_EXCELLENT_SECURE_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_EXCELLENT_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_GOOD,
+	ICON_NETWORK_WIRELESS_SIGNAL_GOOD_SECURE_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_GOOD_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_NONE_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_OK,
+	ICON_NETWORK_WIRELESS_SIGNAL_OK_SECURE_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_OK_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_WEAK,
+	ICON_NETWORK_WIRELESS_SIGNAL_WEAK_SECURE_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SIGNAL_WEAK_SYMBOLIC,
+	ICON_NETWORK_WIRELESS_SYMBOLIC,
+	ICON_NIGHT_LIGHT,
+	ICON_NIGHT_LIGHT_DISABLED_10_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_20_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_30_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_40_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_50_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_60_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_70_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_80_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_90_SYMBOLIC,
+	ICON_NIGHT_LIGHT_DISABLED_SYMBOLIC,
+	ICON_NIGHT_LIGHT_SYMBOLIC,
+	ICON_NM_NO_CONNECTION,
+	ICON_NM_SIGNAL_0,
+	ICON_NM_SIGNAL_0_SECURE,
+	ICON_NM_SIGNAL_100,
+	ICON_NM_SIGNAL_100_SECURE,
+	ICON_NM_SIGNAL_25,
+	ICON_NM_SIGNAL_25_SECURE,
+	ICON_NM_SIGNAL_50,
+	ICON_NM_SIGNAL_50_SECURE,
+	ICON_NM_SIGNAL_75,
+	ICON_NM_SIGNAL_75_SECURE,
+	ICON_NM_VPN_ACTIVE_LOCK,
+	ICON_NM_VPN_LOCK,
+	ICON_NON_STARRED,
+	ICON_NON_STARRED_SYMBOLIC,
+	ICON_NOTIFICATION_AUDIO_VOLUME_HIGH,
+	ICON_NOTIFICATION_AUDIO_VOLUME_LOW,
+	ICON_NOTIFICATION_AUDIO_VOLUME_MEDIUM,
+	ICON_NOTIFICATION_AUDIO_VOLUME_MUTED,
+	ICON_NOTIFICATION_DEVICE_EJECT,
+	ICON_NOTIFICATION_DISABLED,
+	ICON_NOTIFICATION_DISABLED_10_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_20_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_30_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_40_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_50_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_60_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_70_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_80_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_90_SYMBOLIC,
+	ICON_NOTIFICATION_DISABLED_SYMBOLIC,
+	ICON_NOTIFICATION_DISPLAY_BRIGHTNESS,
+	ICON_NOTIFICATION_KEYBOARD_BRIGHTNESS,
+	ICON_NOTIFICATION_NETWORK_ETHERNET_DISCONNECTED,
+	ICON_NOTIFICATION_NETWORK_WIRED,
+	ICON_NOTIFICATION_NETWORK_WIRELESS,
+	ICON_NOTIFICATION_NETWORK_WIRELESS_DISCONNECTED,
+	ICON_NOTIFICATION_NETWORK_WIRELESS_DISCONNECTED_SYMBOLIC,
+	ICON_NOTIFICATION_NETWORK_WIRELESS_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_10_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_20_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_30_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_40_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_50_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_60_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_70_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_80_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_90_SYMBOLIC,
+	ICON_NOTIFICATION_NEW_SYMBOLIC,
+	ICON_NOTIFICATION_SYMBOLIC,
+	ICON_PAGER_CHECKED_SYMBOLIC,
+	ICON_PRINTER_ERROR,
+	ICON_PRINTER_ERROR_SYMBOLIC,
+	ICON_PRINTER_PRINTING_SYMBOLIC,
+	ICON_PRINTER_WARNING_SYMBOLIC,
+	ICON_PROCESS_COMPLETED,
+	ICON_PROCESS_COMPLETED_SYMBOLIC,
+	ICON_PROCESS_ERROR_SYMBOLIC,
+	ICON_PROCESS_WORKING_SYMBOLIC,
+	ICON_RADIO_CHECKED_SYMBOLIC,
+	ICON_RADIO_MIXED_SYMBOLIC,
+	ICON_RADIO_SYMBOLIC,
+	ICON_ROTATION_ALLOWED_SYMBOLIC,
+	ICON_ROTATION_LOCKED_SYMBOLIC,
+	ICON_SECURITY_HIGH,
+	ICON_SECURITY_HIGH_SYMBOLIC,
+	ICON_SECURITY_LOW,
+	ICON_SECURITY_LOW_SYMBOLIC,
+	ICON_SECURITY_MEDIUM,
+	ICON_SECURITY_MEDIUM_SYMBOLIC,
+	ICON_SEMI_STARRED,
+	ICON_SEMI_STARRED_SYMBOLIC,
+	ICON_SOFTWARE_UPDATE_AVAILABLE_SYMBOLIC,
+	ICON_SOFTWARE_UPDATE_URGENT_SYMBOLIC,
+	ICON_STARRED,
+	ICON_STARRED_SYMBOLIC,
+	ICON_TASK_DUE_SYMBOLIC,
+	ICON_TASK_PAST_DUE_SYMBOLIC,
+	ICON_TOUCHPAD_DISABLED_SYMBOLIC,
+	ICON_USER_AVAILABLE,
+	ICON_USER_AVAILABLE_SYMBOLIC,
+	ICON_USER_AWAY,
+	ICON_USER_AWAY_SYMBOLIC,
+	ICON_USER_BUSY,
+	ICON_USER_BUSY_SYMBOLIC,
+	ICON_USER_IDLE_SYMBOLIC,
+	ICON_USER_INVISIBLE,
+	ICON_USER_INVISIBLE_SYMBOLIC,
+	ICON_USER_OFFLINE,
+	ICON_USER_OFFLINE_SYMBOLIC,
+	ICON_USER_STATUS_PENDING_SYMBOLIC,
+	ICON_USER_TRASH_FULL_SYMBOLIC,
+	ICON_USER_TYPING,
+	ICON_VIEW_PRIVATE,
+	ICON_VIEW_PRIVATE_SYMBOLIC,
+	ICON_VIEW_WRAPPED_SYMBOLIC,
+	ICON_WEATHER_CLEAR_NIGHT_SYMBOLIC,
+	ICON_WEATHER_CLEAR_SYMBOLIC,
+	ICON_WEATHER_FEW_CLOUDS_NIGHT_SYMBOLIC,
+	ICON_WEATHER_FEW_CLOUDS_SYMBOLIC,
+	ICON_WEATHER_FOG_NIGHT_SYMBOLIC,
+	ICON_WEATHER_FOG_SYMBOLIC,
+	ICON_WEATHER_OVERCAST_NIGHT_SYMBOLIC,
+	ICON_WEATHER_OVERCAST_SYMBOLIC,
+	ICON_WEATHER_SEVERE_ALERT_SYMBOLIC,
+	ICON_WEATHER_SHOWERS_NIGHT_SYMBOLIC,
+	ICON_WEATHER_SHOWERS_SCATTERED_NIGHT_SYMBOLIC,
+	ICON_WEATHER_SHOWERS_SCATTERED_SYMBOLIC,
+	ICON_WEATHER_SHOWERS_SYMBOLIC,
+	ICON_WEATHER_SNOW_NIGHT_SYMBOLIC,
+	ICON_WEATHER_SNOW_SYMBOLIC,
+	ICON_WEATHER_STORM_NIGHT_SYMBOLIC,
+	ICON_WEATHER_STORM_SYMBOLIC,
+	ICON_WEATHER_STORM_TORNADO_NIGHT_SYMBOLIC,
+	ICON_WEATHER_STORM_TORNADO_SYMBOLIC,
+	ICON_WEATHER_WINDY_SYMBOLIC,
+	ICON_CHECKBOX_CHECKED_DISABLED,
+	ICON_CHECKBOX_CHECKED_HOVER,
+	ICON_CHECKBOX_CHECKED_NORMAL,
+	ICON_CHECKBOX_CHECKED_PRESSED,
+	ICON_CHECKBOX_EXCLUDED_DISABLED,
+	ICON_CHECKBOX_EXCLUDED_HOVER,
+	ICON_CHECKBOX_EXCLUDED_NORMAL,
+	ICON_CHECKBOX_EXCLUDED_PRESSED,
+	ICON_CHECKBOX_INDETERMINATE_DISABLED,
+	ICON_CHECKBOX_INDETERMINATE_HOVER,
+	ICON_CHECKBOX_INDETERMINATE_NORMAL,
+	ICON_CHECKBOX_INDETERMINATE_PRESSED,
+	ICON_CHECKBOX_UNCHECKED_DISABLED,
+	ICON_CHECKBOX_UNCHECKED_HOVER,
+	ICON_CHECKBOX_UNCHECKED_NORMAL,
+	ICON_CHECKBOX_UNCHECKED_PRESSED,
+	ICON_RADIOBOX_CHECKED_DISABLED,
+	ICON_RADIOBOX_CHECKED_HOVER,
+	ICON_RADIOBOX_CHECKED_NORMAL,
+	ICON_RADIOBOX_CHECKED_PRESSED,
+	ICON_RADIOBOX_UNCHECKED_DISABLED,
+	ICON_RADIOBOX_UNCHECKED_HOVER,
+	ICON_RADIOBOX_UNCHECKED_NORMAL,
+	ICON_RADIOBOX_UNCHECKED_PRESSED,
+}
+FatalError :: enum {
+	FATAL_ERROR_INVALID_BUFFER,
+	FATAL_ERROR_UNKNOWN_SYSCALL,
+	FATAL_ERROR_INVALID_MEMORY_REGION,
+	FATAL_ERROR_MEMORY_REGION_LOCKED_BY_KERNEL,
+	FATAL_ERROR_PATH_LENGTH_EXCEEDS_LIMIT,
+	FATAL_ERROR_INVALID_HANDLE,
+	FATAL_ERROR_MUTEX_NOT_ACQUIRED_BY_THREAD,
+	FATAL_ERROR_MUTEX_ALREADY_ACQUIRED,
+	FATAL_ERROR_SHARED_MEMORY_REGION_TOO_LARGE,
+	FATAL_ERROR_INCORRECT_FILE_ACCESS,
+	FATAL_ERROR_TOO_MANY_WAIT_OBJECTS,
+	FATAL_ERROR_INCORRECT_NODE_TYPE,
+	FATAL_ERROR_PROCESSOR_EXCEPTION,
+	FATAL_ERROR_UNKNOWN,
+	FATAL_ERROR_RECURSIVE_BATCH,
+	FATAL_ERROR_CORRUPT_HEAP,
+	FATAL_ERROR_CORRUPT_LINKED_LIST,
+	FATAL_ERROR_SPINLOCK_NOT_ACQUIRED,
+	FATAL_ERROR_UNKNOWN_SNAPSHOT_TYPE,
+	FATAL_ERROR_PROCESS_ALREADY_ATTACHED,
+	FATAL_ERROR_INSUFFICIENT_PERMISSIONS,
+	FATAL_ERROR_ABORT,
+	FATAL_ERROR_COUNT,
+}
+SyscallType :: enum {
+	SYSCALL_ALLOCATE,
+	SYSCALL_FREE,
+	SYSCALL_SHARE_MEMORY,
+	SYSCALL_MAP_OBJECT,
+	SYSCALL_OPEN_SHARED_MEMORY,
+	SYSCALL_CREATE_PROCESS,
+	SYSCALL_GET_CREATION_ARGUMENT,
+	SYSCALL_TERMINATE_THREAD,
+	SYSCALL_CREATE_THREAD,
+	SYSCALL_WAIT,
+	SYSCALL_TERMINATE_PROCESS,
+	SYSCALL_CREATE_EVENT,
+	SYSCALL_SET_EVENT,
+	SYSCALL_RESET_EVENT,
+	SYSCALL_POLL_EVENT,
+	SYSCALL_PAUSE_PROCESS,
+	SYSCALL_CRASH_PROCESS,
+	SYSCALL_GET_THREAD_ID,
+	SYSCALL_GET_PROCESS_STATE,
+	SYSCALL_YIELD_SCHEDULER,
+	SYSCALL_SLEEP,
+	SYSCALL_OPEN_PROCESS,
+	SYSCALL_SET_TLS,
+	SYSCALL_GET_TLS,
+	SYSCALL_TIMER_SET,
+	SYSCALL_TIMER_CREATE,
+	SYSCALL_GET_PROCESS_STATUS,
+	SYSCALL_EVENT_FORWARD,
+	SYSCALL_EVENT_SINK_CREATE,
+	SYSCALL_EVENT_SINK_POP,
+	SYSCALL_EVENT_SINK_PUSH,
+	SYSCALL_CREATE_SURFACE,
+	SYSCALL_GET_LINEAR_BUFFER,
+	SYSCALL_COPY_TO_SCREEN,
+	SYSCALL_FORCE_SCREEN_UPDATE,
+	SYSCALL_COPY_SURFACE,
+	SYSCALL_DRAW_SURFACE,
+	SYSCALL_REDRAW_ALL,
+	SYSCALL_DRAW_BITMAP,
+	SYSCALL_SURFACE_RESET,
+	SYSCALL_SURFACE_SHARE,
+	SYSCALL_RESIZE_SURFACE,
+	SYSCALL_AUDIO_STREAM_OPEN,
+	SYSCALL_AUDIO_STREAM_NOTIFY,
+	SYSCALL_GET_MESSAGE,
+	SYSCALL_POST_MESSAGE,
+	SYSCALL_POST_MESSAGE_REMOTE,
+	SYSCALL_WAIT_MESSAGE,
+	SYSCALL_CREATE_WINDOW,
+	SYSCALL_UPDATE_WINDOW,
+	SYSCALL_SET_CURSOR_STYLE,
+	SYSCALL_MOVE_WINDOW,
+	SYSCALL_GET_WINDOW_BOUNDS,
+	SYSCALL_RESET_CLICK_CHAIN,
+	SYSCALL_GET_CURSOR_POSITION,
+	SYSCALL_SET_CURSOR_POSITION,
+	SYSCALL_COPY,
+	SYSCALL_GET_CLIPBOARD_HEADER,
+	SYSCALL_PASTE_TEXT,
+	SYSCALL_SET_FOCUSED_WINDOW,
+	SYSCALL_SET_WINDOW_METADATA,
+	SYSCALL_GET_SCREEN_BOUNDS,
+	SYSCALL_WINDOW_OPEN,
+	SYSCALL_WINDOW_SET_BLEND_BOUNDS,
+	SYSCALL_WINDOW_GET_ID,
+	SYSCALL_SET_WINDOW_ALPHA,
+	SYSCALL_DOCKED_WINDOW_CREATE,
+	SYSCALL_WINDOW_SHARE,
+	SYSCALL_SET_EMBED_WINDOW,
+	SYSCALL_WINDOW_SET_BLUR_BOUNDS,
+	SYSCALL_START_EYEDROP,
+	SYSCALL_WINDOW_SET_SOLID,
+	SYSCALL_RESIZE_WINDOW_SURFACE,
+	SYSCALL_OPEN_NODE,
+	SYSCALL_OPEN_NODE_RELATIVE,
+	SYSCALL_READ_FILE_SYNC,
+	SYSCALL_WRITE_FILE_SYNC,
+	SYSCALL_RESIZE_FILE,
+	SYSCALL_REFRESH_NODE_INFORMATION,
+	SYSCALL_ENUMERATE_DIRECTORY_CHILDREN,
+	SYSCALL_DELETE_NODE,
+	SYSCALL_MOVE_NODE,
+	SYSCALL_DIRECTORY_MONITOR,
+	SYSCALL_FILE_WRITE_COMPLETE,
+	SYSCALL_READ_CONSTANT_BUFFER,
+	SYSCALL_SHARE_CONSTANT_BUFFER,
+	SYSCALL_CREATE_CONSTANT_BUFFER,
+	SYSCALL_MAILSLOT_SEND_DATA,
+	SYSCALL_MAILSLOT_SEND_MESSAGE,
+	SYSCALL_MAILSLOT_SHARE,
+	SYSCALL_PIPE_CREATE,
+	SYSCALL_PIPE_WRITE,
+	SYSCALL_PIPE_READ,
+	SYSCALL_USER_GET_HOME_FOLDER,
+	SYSCALL_USER_LOGIN,
+	SYSCALL_GET_SYSTEM_CONSTANTS,
+	SYSCALL_TAKE_SYSTEM_SNAPSHOT,
+	SYSCALL_SET_SYSTEM_CONSTANT,
+	SYSCALL_GET_SYSTEM_INFORMATION,
+	SYSCALL_SYSTEM_CONFIGURATION_WRITE,
+	SYSCALL_SYSTEM_CONFIGURATION_READ,
+	SYSCALL_PRINT,
+	SYSCALL_CLOSE_HANDLE,
+	SYSCALL_BATCH,
+	SYSCALL_SHUTDOWN,
+	SYSCALL_POSIX,
+	SYSCALL_START_PROGRAM,
+	SYSCALL_DEBUG_COMMAND,
+	SYSCALL_COUNT,
+}
+MessageType :: enum {
+	MESSAGE_WM_START =  0x1000,
+	MESSAGE_MOUSE_MOVED =  0x1001,
+	MESSAGE_WINDOW_ACTIVATED =  0x1002,
+	MESSAGE_WINDOW_DEACTIVATED =  0x1003,
+	MESSAGE_WINDOW_DESTROYED =  0x1004,
+	MESSAGE_MOUSE_EXIT =  0x1005 ,
+	MESSAGE_WINDOW_RESIZED =  0x1007,
+	MESSAGE_MOUSE_LEFT_PRESSED =  0x1008	,
+	MESSAGE_MOUSE_LEFT_RELEASED =  0x1009,
+	MESSAGE_MOUSE_RIGHT_PRESSED =  0x100A,
+	MESSAGE_MOUSE_RIGHT_RELEASED =  0x100B,
+	MESSAGE_MOUSE_MIDDLE_PRESSED =  0x100C,
+	MESSAGE_MOUSE_MIDDLE_RELEASED =  0x100D ,
+	MESSAGE_KEY_PRESSED =  0x100E,
+	MESSAGE_KEY_RELEASED =  0x100F,
+	MESSAGE_UPDATE_WINDOW =  0x1010,
+	MESSAGE_WM_END =  0x13FF,
+	MESSAGE_PAINT =  0x2000	,
+	MESSAGE_PAINT_BACKGROUND =  0x2001	,
+	MESSAGE_PAINT_FOREGROUND =  0x2002	,
+	MESSAGE_GET_CURSOR =  0x2003	,
+	MESSAGE_ANIMATE =  0x2004	,
+	MESSAGE_Z_ORDER =  0x2005	,
+	MESSAGE_DESTROY =  0x2006	,
+	MESSAGE_MEASURE =  0x2008	,
+	MESSAGE_LAYOUT =  0x2009	,
+	MESSAGE_ENSURE_VISIBLE =  0x200A	,
+	MESSAGE_ADD_CHILD =  0x200B	,
+	MESSAGE_REMOVE_CHILD =  0x200C	,
+	MESSAGE_PRE_ADD_CHILD =  0x200D	,
+	MESSAGE_HIT_TEST =  0x200E	,
+	MESSAGE_MOUSE_DRAGGED =  0x200F	,
+	MESSAGE_CLICKED =  0x2010	,
+	MESSAGE_KEY_TYPED =  0x2011	,
+	MESSAGE_SCROLL_X =  0x2012	,
+	MESSAGE_SCROLL_Y =  0x2013	,
+	MESSAGE_STRONG_FOCUS_END =  0x2014	,
+	MESSAGE_BEFORE_Z_ORDER =  0x2015	,
+	MESSAGE_AFTER_Z_ORDER =  0x2016	,
+	MESSAGE_PAINT_CHILDREN =  0x2017	,
+	MESSAGE_STATE_CHANGE_MESSAGE_START =  0x2080,
+	MESSAGE_HOVERED_START =  0x2081	,
+	MESSAGE_HOVERED_END =  0x2082	,
+	MESSAGE_PRESSED_START =  0x2083	,
+	MESSAGE_PRESSED_END =  0x2084	,
+	MESSAGE_FOCUSED_START =  0x2085	,
+	MESSAGE_FOCUSED_END =  0x2086	,
+	MESSAGE_FOCUS_WITHIN_START =  0x2087	,
+	MESSAGE_FOCUS_WITHIN_END =  0x2088	,
+	MESSAGE_STATE_CHANGE_MESSAGE_END =  0x20FF,
+	MESSAGE_SCROLLBAR_MOVED =  0x3000	,
+	MESSAGE_CHECK_UPDATED =  0x3001	,
+	MESSAGE_RADIO_GROUP_UPDATED =  0x3002	,
+	MESSAGE_COLOR_CHANGED =  0x3003	,
+	MESSAGE_DESKTOP_START_PROGRAM =  0x4800,
+	MESSAGE_POWER_BUTTON_PRESSED =  0x4801,
+	MESSAGE_SET_WINDOW_METADATA =  0x4802,
+	MESSAGE_EMBED_WINDOW_CREATE =  0x4803,
+	MESSAGE_FS_EVENT_START =  0x4B80,
+	MESSAGE_FS_CREATE =  0x4B81,
+	MESSAGE_FS_DELETE =  0x4B82,
+	MESSAGE_FS_MOVE =  0x4B83,
+	MESSAGE_FS_MODIFY =  0x4B84,
+	MESSAGE_FS_EVENT_END =  0x4B85,
+	MESSAGE_FS_MONITOR_DESTROY =  0x4B86	,
+	MESSAGE_PROGRAM_CRASH =  0x4C00,
+	MESSAGE_PROGRAM_FAILED_TO_START =  0x4C01,
+	MESSAGE_CLIPBOARD_UPDATED =  0x5001,
+	MESSAGE_EYEDROP_REPORT =  0x5002,
+	MESSAGE_SYSTEM_CONSTANT_UPDATED =  0x5004,
+	MESSAGE_TIMER =  0x5006,
+	MESSAGE_RECEIVE_DATA =  0x5080,
+	MESSAGE_MAILSLOT_CLOSED =  0x5081,
+	MESSAGE_CHOICE_ADD_ITEMS =  0x5180,
+	MESSAGE_CHOICE_ITEM_TO_STRING =  0x5181,
+	MESSAGE_CHOICE_UPDATE =  0x5182,
+	MESSAGE_TEXTBOX_UPDATED =  0x5200,
+	MESSAGE_TEXTBOX_EDIT_START =  0x5201 ,
+	MESSAGE_TEXTBOX_EDIT_END =  0x5202 ,
+	MESSAGE_TEXTBOX_NUMBER_DRAG_START =  0x5203 ,
+	MESSAGE_TEXTBOX_NUMBER_DRAG_END =  0x5204 ,
+	MESSAGE_TEXTBOX_NUMBER_DRAG_DELTA =  0x5205 ,
+	MESSAGE_TEXTBOX_NUMBER_UPDATED =  0x5206 ,
+	MESSAGE_TEXTBOX_GET_BREADCRUMB =  0x5207 ,
+	MESSAGE_TEXTBOX_ACTIVATE_BREADCRUMB =  0x5208 ,
+	MESSAGE_LIST_VIEW_COMPARE_INDICES =  0x5300,
+	MESSAGE_LIST_VIEW_NEXT_INDEX =  0x5301,
+	MESSAGE_LIST_VIEW_PREVIOUS_INDEX =  0x5302,
+	MESSAGE_LIST_VIEW_FIRST_INDEX =  0x5303,
+	MESSAGE_LIST_VIEW_LAST_INDEX =  0x5304,
+	MESSAGE_LIST_VIEW_FIND_INDEX =  0x5305,
+	MESSAGE_LIST_VIEW_COUNT_ITEMS =  0x5306,
+	MESSAGE_LIST_VIEW_MEASURE_RANGE =  0x5307,
+	MESSAGE_LIST_VIEW_MEASURE_ITEM =  0x5308,
+	MESSAGE_LIST_VIEW_CREATE_ITEM =  0x5309,
+	MESSAGE_LIST_VIEW_GET_CONTENT =  0x530A,
+	MESSAGE_LIST_VIEW_GET_INDENT =  0x530B,
+	MESSAGE_LIST_VIEW_FIND_POSITION =  0x530C,
+	MESSAGE_LIST_VIEW_IS_SELECTED =  0x530D,
+	MESSAGE_LIST_VIEW_SELECT =  0x530E,
+	MESSAGE_LIST_VIEW_SELECT_RANGE =  0x530F,
+	MESSAGE_LIST_VIEW_CHOOSE_ITEM =  0x5310,
+	MESSAGE_LIST_VIEW_SEARCH =  0x5311,
+	MESSAGE_PROGRAM_START =  0x7000,
+	MESSAGE_PROGRAM_EXIT =  0x7001,
+	MESSAGE_INSTANCE_CREATE =  0x7002,
+	MESSAGE_INSTANCE_OPEN =  0x7003,
+	MESSAGE_INSTANCE_SAVE =  0x7004,
+	MESSAGE_USER_START =  0x8000,
+	MESSAGE_USER_END =  0xBFFF,
+}
+DrawMode :: enum {
+	DRAW_MODE_REPEAT_FIRST =  1 ,
+	DRAW_MODE_STRECH,
+	DRAW_MODE_REPEAT,
+	DRAW_MODE_NONE,
+}
+ClipboardFormat :: enum {
+	CLIPBOARD_FORMAT_EMPTY,
+	CLIPBOARD_FORMAT_TEXT,
+	CLIPBOARD_FORMAT_FILE_LIST,
+}
+ColorFormat :: enum {
+	COLOR_FORMAT_32_XRGB,
+}
+CursorStyle :: enum {
+	CURSOR_NORMAL,
+	CURSOR_TEXT,
+	CURSOR_RESIZE_VERTICAL,
+	CURSOR_RESIZE_HORIZONTAL,
+	CURSOR_RESIZE_DIAGONAL_1,
+	CURSOR_RESIZE_DIAGONAL_2,
+	CURSOR_SPLIT_VERTICAL,
+	CURSOR_SPLIT_HORIZONTAL,
+	CURSOR_HAND_HOVER,
+	CURSOR_HAND_DRAG,
+	CURSOR_HAND_POINT,
+	CURSOR_SCROLL_UP_LEFT,
+	CURSOR_SCROLL_UP,
+	CURSOR_SCROLL_UP_RIGHT,
+	CURSOR_SCROLL_LEFT,
+	CURSOR_SCROLL_CENTER,
+	CURSOR_SCROLL_RIGHT,
+	CURSOR_SCROLL_DOWN_LEFT,
+	CURSOR_SCROLL_DOWN,
+	CURSOR_SCROLL_DOWN_RIGHT,
+	CURSOR_SELECT_LINES,
+	CURSOR_DROP_TEXT,
+	CURSOR_CROSS_HAIR_PICK,
+	CURSOR_CROSS_HAIR_RESIZE,
+	CURSOR_MOVE_HOVER,
+	CURSOR_MOVE_DRAG,
+	CURSOR_ROTATE_HOVER,
+	CURSOR_ROTATE_DRAG,
+	CURSOR_BLANK,
+	CURSOR_COUNT,
+}
+WindowStyle :: enum {
+	WINDOW_NORMAL,
+	WINDOW_CONTAINER,
+	WINDOW_MENU,
+	WINDOW_TIP,
+}
+FormatValueType :: enum {
+	FORMAT_VALUE_INVALID,
+	FORMAT_VALUE_STRING,
+	FORMAT_VALUE_NUMBER,
+	FORMAT_VALUE_TIME,
+}
+CheckState :: enum {
+	CHECK_UNCHECKED =  0,
+	CHECK_CHECKED =  1,
+	CHECK_INDETERMINATE =  2,
+}
+DocumentState :: enum {
+	DOCUMENT_STATE_EMPTY,
+	DOCUMENT_STATE_UNSAVED,
+	DOCUMENT_STATE_FILE,
+}
+TransitionType :: enum {
+	TRANSITION_NONE,
+	TRANSITION_SLIDE_UP,
+	TRANSITION_SLIDE_DOWN,
+	TRANSITION_COVER_UP,
+	TRANSITION_COVER_DOWN,
+	TRANSITION_SQUISH_UP,
+	TRANSITION_SQUISH_DOWN,
+	TRANSITION_ZOOM_OUT,
+	TRANSITION_ZOOM_IN,
+	TRANSITION_ZOOM_OUT_LIGHT,
+	TRANSITION_ZOOM_IN_LIGHT,
+	TRANSITION_REVEAL_UP,
+	TRANSITION_REVEAL_DOWN,
+	TRANSITION_FADE_IN,
+	TRANSITION_FADE_OUT,
+}
+BatchCall :: struct {
+	index :   SyscallType,
+	stopBatchIfError :   bool,
+	using _ : struct #raw_union {
+		argument0 :   uint     ,
+		returnValue :   uint     ,
+	},
+	argument1 :   uint     ,
+	argument2 :   uint     ,
+	argument3 :   uint     ,
+}
+ThreadInformation :: struct {
+	handle :   Handle,
+	tid :   uint     ,
+}
+ProcessInformation :: struct {
+	handle :   Handle,
+	pid :   uint     ,
+	mainThread :   ThreadInformation,
+}
+UniqueIdentifier :: struct {
+	using _ : struct #raw_union {
+		d : [16]u8     ,
+	},
+}
+NodeInformation :: struct {
+	handle :   Handle,
+	type :   NodeType,
+	fileSize :   FileOffset,
+	directoryChildren :   FileOffsetDifference,
+}
+DirectoryChild :: struct {
+	name : [MAX_DIRECTORY_CHILD_NAME_LENGTH]i8  ,
+	nameBytes :   int   ,
+	information :   NodeInformation,
+}
+Point :: struct {
+	x :   i32    ,
+	y :   i32    ,
+}
+Rectangle :: struct {
+	left :   i32    ,
+	right :   i32    ,
+	top :   i32    ,
+	bottom :   i32    ,
+}
+Rectangle16 :: struct {
+	left :   i16    ,
+	right :   i16    ,
+	top :   i16    ,
+	bottom :   i16    ,
+}
+LinearBuffer :: struct {
+	width :   int   ,
+	height :   int   ,
+	stride :   int   ,
+	colorFormat :   ColorFormat,
+	handle :   Handle,
+}
+_EsDrawSurfaceArguments :: struct {
+	source :   Rectangle,
+	destination :   Rectangle,
+	border :   Rectangle,
+	alpha :   u16     ,
+}
+Spinlock :: struct {
+	state :   u8     ,
+}
+Mutex :: struct {
+	event :   Handle,
+	spinlock :   Spinlock,
+	state :   u8     ,
+	queued :   u32     ,
+}
+CrashReason :: struct {
+	errorCode :   Error,
+}
+ProcessState :: struct {
+	crashReason :   CrashReason,
+	creationArgument :   Generic,
+	id :   uint     ,
+	executableState :   uint     ,
+	flags :   u8     ,
+}
+ClipboardHeader :: struct {
+	customBytes :   int   ,
+	format :   ClipboardFormat,
+	textBytes :   int   ,
+	unused :   uint     ,
+}
+PaintTarget :: struct {
+	surface :   Handle,
+	fullAlpha :   bool,
+	linearBuffer :   LinearBuffer,
+	linearBitmap :   rawptr,
+	active :   bool,
+}
+Painter :: struct {
+	clip :   Rectangle,
+	offsetX :   i32,
+	offsetY :   i32,
+	width :   i32,
+	height :   i32,
+	style :   rawptr,
+	target :   ^PaintTarget,
+}
+Message :: struct {
+	type :   MessageType,
+	using _ : struct #raw_union {
+		user : struct {
+			context1 :   Generic,
+			context2 :   Generic,
+			context3 :   Generic,
+		},
+		_argument :   rawptr,
+		mouseMoved : struct {
+			oldPositionX :   i32,
+			newPositionX :   i32,
+			oldPositionY :   i32,
+			newPositionY :   i32,
+			newPositionXScreen :   i32,
+			newPositionYScreen :   i32,
+		},
+		mouseDragged : struct {
+			oldPositionX :   i32,
+			newPositionX :   i32,
+			oldPositionY :   i32,
+			newPositionY :   i32,
+			originalPositionX :   i32,
+			originalPositionY :   i32,
+		},
+		mousePressed : struct {
+			positionX :   i32,
+			positionY :   i32,
+			positionXScreen :   i32,
+			positionYScreen :   i32,
+			clickChainCount :   u8     ,
+			alt :   u8     ,
+			ctrl :   u8     ,
+			shift :   u8     ,
+		},
+		keyboard : struct {
+			scancode :   u32     ,
+			alt :   u8     ,
+			ctrl :   u8     ,
+			shift :   u8     ,
+			numpad :   u8     ,
+			repeat :   u8     ,
+		},
+		crash : struct {
+			reason :   CrashReason,
+			process :   Handle,
+			processNameBuffer :   Handle,
+			processNameBytes :   int   ,
+			pid :   uint     ,
+		},
+		clipboard :   ClipboardHeader,
+		receive : struct {
+			buffer :   Handle,
+			bytes :   int   ,
+		},
+		animate : struct {
+			deltaUs :   i64    ,
+			waitUs :   i64    ,
+			complete :   bool,
+		},
+		systemConstantUpdated : struct {
+			index :   uint     ,
+			newValue :   u64     ,
+		},
+		desktopExecute : struct {
+			whatBuffer :   Handle,
+			argumentBuffer :   Handle,
+			mailslot :   Handle,
+			whatBytes :   int   ,
+			argumentBytes :   int   ,
+			modalWindowParent :   u64     ,
+		},
+		dockedWindowCreate : struct {
+			pipe :   Handle,
+		},
+		windowMetadata : struct {
+			id :   u64     ,
+			buffer :   Handle,
+			bytes :   int   ,
+		},
+		createEmbeddedWindow : struct {
+			id :   u64     ,
+			handle :   Handle,
+		},
+		windowResized : struct {
+			content :   Rectangle,
+			hidden :   bool,
+		},
+		painter :   ^Painter,
+		measure : struct {
+			width :   i32,
+			height :   i32,
+			hideScrollbarX :   bool,
+			hideScrollbarY :   bool,
+		},
+		child :   rawptr,
+		hitTest : struct {
+			x :   i32,
+			y :   i32,
+			inside :   bool,
+		},
+		zOrder : struct {
+			index :   uint     ,
+			child :   ^Element,
+		},
+		scrollbarMoved : struct {
+			scroll :   i32,
+			previous :   i32,
+		},
+		ensureVisible : struct {
+			child :   ^Element,
+		},
+		cursorStyle :   CursorStyle,
+		eyedrop : struct {
+			color :   u32     ,
+			cancelled :   bool,
+		},
+		colorChanged : struct {
+			newColor :   u32     ,
+			pickerClosed :   bool,
+		},
+		itemToString : struct {
+			item :   Generic,
+			text : ^u8, textBytes : int,
+		},
+		choiceUpdated : struct {
+			newItem :   Generic,
+			oldItem :   Generic,
+		},
+		numberDragDelta : struct {
+			delta :   i32,
+			hoverCharacter :   i32    ,
+			fast :   bool,
+		},
+		numberUpdated : struct {
+			delta :   f64   ,
+			newValue :   f64   ,
+		},
+		getBreadcrumb : struct {
+			index :   uint     ,
+			text : ^u8, textBytes : int,
+		},
+		activateBreadcrumb :   uint     ,
+		checkState :   CheckState,
+		fsEvent : struct {
+			buffer :   Handle,
+			bufferBytes :   u16     ,
+			pathOffset :   u16     ,
+			oldPathOffset :   u16     ,
+			pathBytes :   u16     ,
+			oldPathBytes :   u16     ,
+			_context :   Generic,
+		},
+		createInstance : struct {
+			data :   Handle,
+			dataBytes :   int   ,
+		},
+		instanceOpen : struct {
+			instance :   ^INSTANCE_TYPE,
+			path : ^u8, pathBytes : int,
+		},
+		instanceSave : struct {
+			instance :   ^INSTANCE_TYPE,
+			path : ^u8, pathBytes : int,
+		},
+		compareIndices : struct {
+			group :   i32    ,
+			left :   Generic,
+			right :   Generic,
+			result :   i32,
+		},
+		iterateIndex : struct {
+			group :   i32    ,
+			index :   Generic,
+			position :   i64    ,
+		},
+		itemRange : struct {
+			group :   i32    ,
+			firstIndex :   Generic,
+			lastIndex :   Generic,
+			result :   i64    ,
+		},
+		measureItem : struct {
+			group :   i32    ,
+			index :   Generic,
+			result :   i64    ,
+		},
+		createItem : struct {
+			group :   i32    ,
+			index :   Generic,
+			parent :   ^Element,
+		},
+		getContent : struct {
+			index :   Generic,
+			group :   i32    ,
+			column :   u8     ,
+			icon :   u32     ,
+			text : ^u8, textBytes : int,
+		},
+		getIndent : struct {
+			group :   i32    ,
+			index :   Generic,
+			indent :   u8     ,
+		},
+		selectRange : struct {
+			fromIndex :   Generic,
+			toIndex :   Generic,
+			group :   i32    ,
+			select :   bool,
+			toggle :   bool,
+		},
+		selectItem : struct {
+			group :   i32    ,
+			index :   Generic,
+			isSelected :   bool,
+		},
+		chooseItem : struct {
+			group :   i32    ,
+			index :   Generic,
+		},
+		searchItem : struct {
+			group :   i32    ,
+			index :   Generic,
+			query : ^u8, queryBytes : int,
+		},
+		layout : struct {
+			sizeChanged :   bool,
+		},
+	},
+}
+_EsMessageWithObject :: struct {
+	object :   rawptr,
+	message :   Message,
+}
+DebuggerMessage :: struct {
+	process :   Handle,
+	reason :   CrashReason,
+}
+DriveInformation :: struct {
+	name : [64]i8  ,
+	nameBytes :   int   ,
+	mountpoint : [256]i8  ,
+	mountpointBytes :   int   ,
+}
+SnapshotProcessesItem :: struct {
+	pid :   i64    ,
+	memoryUsage :   i64    ,
+	cpuTimeSlices :   i64    ,
+	name : [SNAPSHOT_MAX_PROCESS_NAME_LENGTH]i8  ,
+	nameLength :   int   ,
+	internal :   u64     ,
+}
+SystemInformation :: struct {
+	processCount :   uint     ,
+	threadCount :   uint     ,
+	handleCount :   uint     ,
+	commitLimit :   uint     ,
+	commit :   uint     ,
+	countZeroedPages :   uint     ,
+	countFreePages :   uint     ,
+	countStandbyPages :   uint     ,
+	countActivePages :   uint     ,
+	coreHeapSize :   uint     ,
+	coreHeapAllocations :   uint     ,
+	fixedHeapSize :   uint     ,
+	fixedHeapAllocations :   uint     ,
+	coreRegions :   uint     ,
+	kernelRegions :   uint     ,
+}
+SnapshotProcesses :: struct {
+	count :   int   ,
+	processes : []SnapshotProcessesItem,
+}
+_EsPOSIXSyscall :: struct {
+	index :   int     ,
+	arguments : [7]int     ,
+}
+ProcessCreationArguments :: struct {
+	executablePath : ^u8, executablePathBytes : int,
+	environmentBlock :   rawptr,
+	environmentBlockBytes :   int   ,
+	creationArgument :   Generic,
+	permissions :   u64     ,
+}
+_EsUserLoginArguments :: struct {
+	name : ^u8, nameBytes : int,
+	home : ^u8, homeBytes : int,
+}
+Instance :: struct {
+	_private :   rawptr,
+	window :   ^Window,
+	documentState :   DocumentState,
+}
+PanelBand :: struct {
+	preferredSize :   i32,
+	minimumSize :   i32,
+	maximumSize :   i32,
+	grow :   i32,
+	shrink :   i32,
+}
+UICallbackFunction :: distinct #type proc "c" (  ^Element,   ^Message,   ^Response);
+ElementProperties :: struct {
+	cStyle :   cstring  ,
+	cStyleOverride :   cstring  ,
+	callback :   UICallbackFunction,
+	cDescription :   cstring  ,
+	cName :   cstring  ,
+	cAutomationID :   cstring  ,
+	cAccessKey :   cstring  ,
+	data :   Generic,
+}
+Font :: struct {
+	family :   u16     ,
+	weight :   u8     ,
+	italic :   bool,
+}
+TextStyle :: struct {
+	font :   Font,
+	size :   u16     ,
+	baselineOffset :   u16     ,
+	kerning :   i8    ,
+	figures :   u8     ,
+	alternateDirection :   bool,
+	color :   u32     ,
+	blur :   u8     ,
+	underlined :   bool,
+}
+TextRun :: struct {
+	style :   TextStyle,
+	bytes :   u32     ,
+}
+TextDisplayProperties :: struct {
+	cLanguage :   cstring  ,
+	rtl :   bool,
+	trimTrailingSpaces :   bool,
+	align :   u8     ,
+	maxLines :   i32,
+}
+TextSelection :: struct {
+	caret0 :   int      ,
+	caret1 :   int      ,
+	hideCaret :   bool,
+	foreground :   u32     ,
+	background :   u32     ,
+}
+FormatValue :: struct {
+	type :   FormatValueType,
+	isStringLiteral :   bool,
+	using _ : struct #raw_union {
+		string :   ^i8  ,
+		number :   f64   ,
+		time :   u64     ,
+	},
+}
+FragmentShaderCallbackFunction :: distinct #type proc "c" (  i32,   i32,   ^StyledBox) ->   u32     ;
+StyledBox :: struct {
+	ox :   i32,
+	oy :   i32,
+	width :   i32,
+	height :   i32,
+	clip :   Rectangle,
+	exclude :   Rectangle,
+	backgroundColor :   u32     ,
+	backgroundColor2 :   u32     ,
+	fragmentShader :   FragmentShaderCallbackFunction,
+	borderColor :   u32     ,
+	borders :   Rectangle16,
+	cornerRadiusTopLeft :   i32,
+	cornerRadiusTopRight :   i32,
+	cornerRadiusBottomLeft :   i32,
+	cornerRadiusBottomRight :   i32,
+	blur :   bool,
+	hasBackgroundGradient :   bool,
+	hasExclusionRegion :   bool,
+	blendMode :   i32,
+}
+Arena :: struct {
+	firstEmptySlot :   rawptr,
+	slotsPerBlock :   int   ,
+	slotSize :   int   ,
+}
+CalculationValue :: struct {
+	error :   bool,
+	number :   [16]u8      ,
+}
+CommandCallbackFunction :: distinct #type proc "c" (  ^INSTANCE_TYPE,   ^Element,   ^Command);
+Command :: struct {
+	elements :   ^^Element,
+	callback :   CommandCallbackFunction,
+	disabled :   bool,
+	registered :   bool,
+	allocated :   bool,
+	stableID :   u32     ,
+	cKeyboardShortcut :   ^i8  ,
+	data :   Generic,
+}
+ListViewColumn :: struct {
+	title : ^u8, titleBytes : int,
+	flags :   u64     ,
+	width :   i32,
+}
+AudioFormat :: struct {
+	sampleRate :   u32     ,
+	sampleFormat :   u8     ,
+	channels :   u8     ,
+	reserved :   u16     ,
+}
+AudioStream :: struct {
+	format :   AudioFormat,
+	handle :   Handle,
+	buffer :   ^u8     ,
+	bufferBytes :   u32     ,
+	readPointer :   u32     ,
+	writePointer :   u32     ,
+	status :   u16     ,
+	control :   u16     ,
+	clock :   u64     ,
+}
+ThreadEntryFunction :: distinct #type proc "c" (  Generic);
+ComparisonCallbackFunction :: distinct #type proc "c" (  rawptr,   rawptr,   Generic) ->   i32;
+SwapCallbackFunction :: distinct #type proc "c" (  rawptr,   rawptr,   Generic);
+CRTComparisonCallback :: distinct #type proc "c" (  rawptr,   rawptr) ->   i32;
+TimerCallbackFunction :: distinct #type proc "c" (  Generic);
+MenuCallbackFunction :: distinct #type proc "c" (  ^Menu,   Generic);
+StorePullCallbackFunction :: distinct #type proc "c" (  ^Store,   ^INSTANCE_TYPE,   Generic,   i32,   Generic,   ^FormatValue);
+StoreCallbackFunction :: distinct #type proc "c" (  ^Store,   ^INSTANCE_TYPE,   Generic,   Generic);
+DirectoryMonitorCallbackFunction :: distinct #type proc "c" (  ^DirectoryMonitor,   i32,   ^i8  ,   int   ,   ^i8  ,   int   ,   Generic);
+MessageLoopCallbackFunction :: distinct #type proc "c" (  ^Message);
+Batch :: inline proc "c" (calls_ :   ^BatchCall, count_ :   int   ){ addr := 0x1000 + 0 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^BatchCall,   int   )) (fp))(calls_, count_); }
+GetCreationArgument :: inline proc "c" (object_ :   Handle) ->   Generic{ addr := 0x1000 + 1 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle) ->   Generic) (fp))(object_); }
+GetSystemInformation :: inline proc "c" (systemInformation_ :   ^SystemInformation){ addr := 0x1000 + 2 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^SystemInformation)) (fp))(systemInformation_); }
+HandleClose :: inline proc "c" (handle_ :   Handle) ->   Error{ addr := 0x1000 + 3 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle) ->   Error) (fp))(handle_); }
+InitialiseCStandardLibrary :: inline proc "c" (argc_ :   ^i32, argv_ :   ^^^i8  ){ addr := 0x1000 + 4 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^i32,   ^^^i8  )) (fp))(argc_, argv_); }
+MailslotSendData :: inline proc "c" (mailslot_ :   Handle, data_ :   rawptr, bytes_ :   int   ) ->   bool{ addr := 0x1000 + 5 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   rawptr,   int   ) ->   bool) (fp))(mailslot_, data_, bytes_); }
+MakeLinuxSystemCall2 :: inline proc "c" (n_ :   int     , a1_ :   int     , a2_ :   int     , a3_ :   int     , a4_ :   int     , a5_ :   int     , a6_ :   int     ) ->   int     { addr := 0x1000 + 6 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int     ,   int     ,   int     ,   int     ,   int     ,   int     ,   int     ) ->   int     ) (fp))(n_, a1_, a2_, a3_, a4_, a5_, a6_); }
+SystemConfigurationRead :: inline proc "c" (cKey_ :   ^i8  , bytes_ :   ^int   ) ->   rawptr{ addr := 0x1000 + 7 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^int   ) ->   rawptr) (fp))(cKey_, bytes_); }
+SystemGetConstant :: inline proc "c" (index_ :   uint     ) ->   u64     { addr := 0x1000 + 8 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  uint     ) ->   u64     ) (fp))(index_); }
+TakeSystemSnapshot :: inline proc "c" (type_ :   i32, bufferSize_ :   ^int   ) ->   Handle{ addr := 0x1000 + 9 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32,   ^int   ) ->   Handle) (fp))(type_, bufferSize_); }
+UserGetHomeFolder :: inline proc "c" (buffer_ :   ^i8  , bufferBytes_ :   int   ) ->   int   { addr := 0x1000 + 10 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   int   ) ->   int   ) (fp))(buffer_, bufferBytes_); }
+_EsInstanceCreate :: inline proc "c" (bytes_ :   int   , message_ :   ^Message) ->   ^Instance{ addr := 0x1000 + 11 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int   ,   ^Message) ->   ^Instance) (fp))(bytes_, message_); }
+_EsSyscall :: inline proc "c" (a_ :   uint     , b_ :   uint     , c_ :   uint     , d_ :   uint     , e_ :   uint     , f_ :   uint     ) ->   uint     { addr := 0x1000 + 12 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  uint     ,   uint     ,   uint     ,   uint     ,   uint     ,   uint     ) ->   uint     ) (fp))(a_, b_, c_, d_, e_, f_); }
+CommandAddButton :: inline proc "c" (command_ :   ^Command, button_ :   ^Button){ addr := 0x1000 + 13 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Command,   ^Button)) (fp))(command_, button_); }
+CommandByID :: inline proc "c" (instance_ :   ^Instance, stableID_ :   u32     ) ->   ^Command{ addr := 0x1000 + 14 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Instance,   u32     ) ->   ^Command) (fp))(instance_, stableID_); }
+CommandRegister :: inline proc "c" (command_ :   ^Command, instance_ :   ^Instance, callback_ :   CommandCallbackFunction, stableID_ :   u32     , cDefaultKeyboardShortcut_ :   cstring  , enabled_ :   bool) ->   ^Command{ addr := 0x1000 + 15 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Command,   ^Instance,   CommandCallbackFunction,   u32     ,   cstring  ,   bool) ->   ^Command) (fp))(command_, instance_, callback_, stableID_, cDefaultKeyboardShortcut_, enabled_); }
+CommandSetCallback :: inline proc "c" (command_ :   ^Command, callback_ :   CommandCallbackFunction){ addr := 0x1000 + 16 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Command,   CommandCallbackFunction)) (fp))(command_, callback_); }
+CommandSetDisabled :: inline proc "c" (command_ :   ^Command, disabled_ :   bool){ addr := 0x1000 + 17 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Command,   bool)) (fp))(command_, disabled_); }
+DialogClose :: inline proc "c" (window_ :   ^Window){ addr := 0x1000 + 18 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Window)) (fp))(window_); }
+DialogShow :: inline proc "c" (window_ :   ^Window) ->   ^Element{ addr := 0x1000 + 19 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Window) ->   ^Element) (fp))(window_); }
+DialogShowAlert :: inline proc "c" (window_ :   ^Window, title_ : string, content_ : string, iconID_ :   u32     ) ->   ^Element{ addr := 0x1000 + 20 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Window, ^u8, int, ^u8, int,   u32     ) ->   ^Element) (fp))(window_, raw_data(title_), len(title_), raw_data(content_), len(content_), iconID_); }
+KeyboardIsAltHeld :: inline proc "c" () ->   bool{ addr := 0x1000 + 21 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   bool) (fp))(); }
+KeyboardIsCtrlHeld :: inline proc "c" () ->   bool{ addr := 0x1000 + 22 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   bool) (fp))(); }
+KeyboardIsShiftHeld :: inline proc "c" () ->   bool{ addr := 0x1000 + 23 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   bool) (fp))(); }
+MessageGetInputText :: inline proc "c" (message_ :   ^Message, buffer_ :   ^i8  ) ->   int   { addr := 0x1000 + 24 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Message,   ^i8  ) ->   int   ) (fp))(message_, buffer_); }
+MessageLoopEnter :: inline proc "c" (callback_ :   MessageLoopCallbackFunction){ addr := 0x1000 + 25 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  MessageLoopCallbackFunction)) (fp))(callback_); }
+MessageMutexAcquire :: inline proc "c" (){ addr := 0x1000 + 26 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+MessageMutexCheck :: inline proc "c" (){ addr := 0x1000 + 27 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+MessageMutexRelease :: inline proc "c" (){ addr := 0x1000 + 28 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+MessagePost :: inline proc "c" (target_ :   ^Element, message_ :   ^Message) ->   Error{ addr := 0x1000 + 29 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   ^Message) ->   Error) (fp))(target_, message_); }
+MessagePostRemote :: inline proc "c" (process_ :   Handle, message_ :   ^Message) ->   Error{ addr := 0x1000 + 30 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   ^Message) ->   Error) (fp))(process_, message_); }
+MessageSend :: inline proc "c" (object_ :   ^Element, message_ :   ^Message) ->   Response{ addr := 0x1000 + 31 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   ^Message) ->   Response) (fp))(object_, message_); }
+MouseGetPosition :: inline proc "c" (relativeElement_ :   ^Element) ->   Point{ addr := 0x1000 + 32 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   Point) (fp))(relativeElement_); }
+MouseSetPosition :: inline proc "c" (relativeWindow_ :   ^Window, x_ :   i32, y_ :   i32){ addr := 0x1000 + 33 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Window,   i32,   i32)) (fp))(relativeWindow_, x_, y_); }
+PaintTargetClear :: inline proc "c" (target_ :   ^PaintTarget){ addr := 0x1000 + 34 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^PaintTarget)) (fp))(target_); }
+PaintTargetTake :: inline proc "c" (window_ :   ^Window, target_ :   ^PaintTarget, width_ :   int   , height_ :   int   ) ->   bool{ addr := 0x1000 + 35 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Window,   ^PaintTarget,   int   ,   int   ) ->   bool) (fp))(window_, target_, width_, height_); }
+PaintTargetReturn :: inline proc "c" (window_ :   ^Window, target_ :   ^PaintTarget){ addr := 0x1000 + 36 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Window,   ^PaintTarget)) (fp))(window_, target_); }
+StyleRefreshAll :: inline proc "c" (window_ :   ^Element){ addr := 0x1000 + 37 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element)) (fp))(window_); }
+UISetDPI :: inline proc "c" (dpiScale_ :   i32){ addr := 0x1000 + 38 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  i32)) (fp))(dpiScale_); }
+DirectoryEnumerateChildren :: inline proc "c" (path_ : string, buffer_ :   ^^DirectoryChild) ->   int      { addr := 0x1000 + 39 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   ^^DirectoryChild) ->   int      ) (fp))(raw_data(path_), len(path_), buffer_); }
+DirectoryEnumerateChildrenFromHandle :: inline proc "c" (directory_ :   Handle, buffer_ :   ^DirectoryChild, bufferCount_ :   int   ) ->   int      { addr := 0x1000 + 40 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   ^DirectoryChild,   int   ) ->   int      ) (fp))(directory_, buffer_, bufferCount_); }
+DirectoryMonitorCreate :: inline proc "c" (path_ : string, flags_ :   u64     , callback_ :   DirectoryMonitorCallbackFunction, _context_ :   Generic) ->   ^DirectoryMonitor{ addr := 0x1000 + 41 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   u64     ,   DirectoryMonitorCallbackFunction,   Generic) ->   ^DirectoryMonitor) (fp))(raw_data(path_), len(path_), flags_, callback_, _context_); }
+DirectoryMonitorCreateFromHandle :: inline proc "c" (directory_ :   Handle, flags_ :   u64     , callback_ :   DirectoryMonitorCallbackFunction, _context_ :   Generic) ->   ^DirectoryMonitor{ addr := 0x1000 + 42 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   u64     ,   DirectoryMonitorCallbackFunction,   Generic) ->   ^DirectoryMonitor) (fp))(directory_, flags_, callback_, _context_); }
+DirectoryMonitorDestroy :: inline proc "c" (monitor_ :   ^DirectoryMonitor){ addr := 0x1000 + 43 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^DirectoryMonitor)) (fp))(monitor_); }
+FileReadAll :: inline proc "c" (filePath_ : string, fileSize_ :   ^int   ) ->   rawptr{ addr := 0x1000 + 44 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   ^int   ) ->   rawptr) (fp))(raw_data(filePath_), len(filePath_), fileSize_); }
+FileReadSync :: inline proc "c" (file_ :   Handle, offset_ :   FileOffset, size_ :   int   , buffer_ :   rawptr) ->   int   { addr := 0x1000 + 45 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   FileOffset,   int   ,   rawptr) ->   int   ) (fp))(file_, offset_, size_, buffer_); }
+FileResize :: inline proc "c" (file_ :   Handle, newSize_ :   FileOffset) ->   Error{ addr := 0x1000 + 46 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   FileOffset) ->   Error) (fp))(file_, newSize_); }
+FileWriteAll :: inline proc "c" (filePath_ : string, data_ :   rawptr, fileSize_ :   int   ) ->   Error{ addr := 0x1000 + 47 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   rawptr,   int   ) ->   Error) (fp))(raw_data(filePath_), len(filePath_), data_, fileSize_); }
+FileWriteAllGather :: inline proc "c" (filePath_ : string, data_ :   ^rawptr, fileSize_ :   ^int   , gatherCount_ :   int   ) ->   Error{ addr := 0x1000 + 48 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   ^rawptr,   ^int   ,   int   ) ->   Error) (fp))(raw_data(filePath_), len(filePath_), data_, fileSize_, gatherCount_); }
+FileWriteComplete :: inline proc "c" (file_ :   Handle){ addr := 0x1000 + 49 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle)) (fp))(file_); }
+FileWriteSync :: inline proc "c" (file_ :   Handle, offset_ :   FileOffset, size_ :   int   , buffer_ :   rawptr) ->   int   { addr := 0x1000 + 50 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   FileOffset,   int   ,   rawptr) ->   int   ) (fp))(file_, offset_, size_, buffer_); }
+NodeDelete :: inline proc "c" (node_ :   Handle) ->   Error{ addr := 0x1000 + 51 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle) ->   Error) (fp))(node_); }
+NodeDeleteByPath :: inline proc "c" (filePath_ : string) ->   Error{ addr := 0x1000 + 52 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int) ->   Error) (fp))(raw_data(filePath_), len(filePath_)); }
+NodeFindUniqueName :: inline proc "c" (buffer_ :   ^i8  , originalBytes_ :   int   , bufferBytes_ :   int   ) ->   int   { addr := 0x1000 + 53 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   int   ,   int   ) ->   int   ) (fp))(buffer_, originalBytes_, bufferBytes_); }
+NodeMove :: inline proc "c" (node_ :   Handle, newDirectory_ :   Handle, newName_ : string) ->   Error{ addr := 0x1000 + 54 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   Handle, ^u8, int) ->   Error) (fp))(node_, newDirectory_, raw_data(newName_), len(newName_)); }
+NodeOpen :: inline proc "c" (path_ : string, flags_ :   u64     , information_ :   ^NodeInformation) ->   Error{ addr := 0x1000 + 55 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   u64     ,   ^NodeInformation) ->   Error) (fp))(raw_data(path_), len(path_), flags_, information_); }
+NodeOpenRelative :: inline proc "c" (directory_ :   Handle, path_ : string, flags_ :   u64     , information_ :   ^NodeInformation) ->   Error{ addr := 0x1000 + 56 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle, ^u8, int,   u64     ,   ^NodeInformation) ->   Error) (fp))(directory_, raw_data(path_), len(path_), flags_, information_); }
+NodeRefreshInformation :: inline proc "c" (information_ :   ^NodeInformation){ addr := 0x1000 + 57 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^NodeInformation)) (fp))(information_); }
+ProcessCrash :: inline proc "c" (error_ :   Error, message_ : string){ addr := 0x1000 + 58 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Error, ^u8, int)) (fp))(error_, raw_data(message_), len(message_)); }
+ProcessCreate :: inline proc "c" (executablePath_ : string, information_ :   ^ProcessInformation, argument_ :   Generic) ->   Error{ addr := 0x1000 + 59 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   ^ProcessInformation,   Generic) ->   Error) (fp))(raw_data(executablePath_), len(executablePath_), information_, argument_); }
+ProcessCreate2 :: inline proc "c" (arguments_ :   ^ProcessCreationArguments, information_ :   ^ProcessInformation) ->   Error{ addr := 0x1000 + 60 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^ProcessCreationArguments,   ^ProcessInformation) ->   Error) (fp))(arguments_, information_); }
+ProcessGetExitStatus :: inline proc "c" (process_ :   Handle) ->   i32{ addr := 0x1000 + 61 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle) ->   i32) (fp))(process_); }
+ProcessGetID :: inline proc "c" (process_ :   Handle) ->   uint     { addr := 0x1000 + 62 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle) ->   uint     ) (fp))(process_); }
+ProcessGetState :: inline proc "c" (process_ :   Handle, state_ :   ^ProcessState){ addr := 0x1000 + 63 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle,   ^ProcessState)) (fp))(process_, state_); }
+ProcessOpen :: inline proc "c" (pid_ :   u64     ) ->   Handle{ addr := 0x1000 + 64 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  u64     ) ->   Handle) (fp))(pid_); }
+ProcessPause :: inline proc "c" (process_ :   Handle, resume_ :   bool){ addr := 0x1000 + 65 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle,   bool)) (fp))(process_, resume_); }
+ProcessTerminate :: inline proc "c" (process_ :   Handle, status_ :   i32){ addr := 0x1000 + 66 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle,   i32)) (fp))(process_, status_); }
+ProcessTerminateCurrent :: inline proc "c" (){ addr := 0x1000 + 67 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+ThreadCreate :: inline proc "c" (entryFunction_ :   ThreadEntryFunction, information_ :   ^ThreadInformation, argument_ :   Generic) ->   Error{ addr := 0x1000 + 68 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ThreadEntryFunction,   ^ThreadInformation,   Generic) ->   Error) (fp))(entryFunction_, information_, argument_); }
+ThreadGetID :: inline proc "c" (thread_ :   Handle) ->   uint     { addr := 0x1000 + 69 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle) ->   uint     ) (fp))(thread_); }
+ThreadLocalStorageSetAddress :: inline proc "c" (address_ :   rawptr){ addr := 0x1000 + 70 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr)) (fp))(address_); }
+ThreadTerminate :: inline proc "c" (thread_ :   Handle){ addr := 0x1000 + 71 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle)) (fp))(thread_); }
+ArenaAllocate :: inline proc "c" (arena_ :   ^Arena, zero_ :   bool) ->   rawptr{ addr := 0x1000 + 72 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Arena,   bool) ->   rawptr) (fp))(arena_, zero_); }
+ArenaFree :: inline proc "c" (pointer_ :   rawptr){ addr := 0x1000 + 73 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr)) (fp))(pointer_); }
+ArenaInitialise :: inline proc "c" (arena_ :   ^Arena, slotsPerBlock_ :   int   , itemSize_ :   int   ){ addr := 0x1000 + 74 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Arena,   int   ,   int   )) (fp))(arena_, slotsPerBlock_, itemSize_); }
+ConstantBufferCreate :: inline proc "c" (data_ :   rawptr, dataBytes_ :   int   , targetProcess_ :   Handle) ->   Handle{ addr := 0x1000 + 75 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   int   ,   Handle) ->   Handle) (fp))(data_, dataBytes_, targetProcess_); }
+ConstantBufferRead :: inline proc "c" (constantBuffer_ :   Handle, output_ :   rawptr){ addr := 0x1000 + 76 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle,   rawptr)) (fp))(constantBuffer_, output_); }
+ConstantBufferShare :: inline proc "c" (constantBuffer_ :   Handle, targetProcess_ :   Handle) ->   Handle{ addr := 0x1000 + 77 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   Handle) ->   Handle) (fp))(constantBuffer_, targetProcess_); }
+HeapAllocate :: inline proc "c" (size_ :   int   , zeroMemory_ :   bool) ->   rawptr{ addr := 0x1000 + 78 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int   ,   bool) ->   rawptr) (fp))(size_, zeroMemory_); }
+HeapFree :: inline proc "c" (address_ :   rawptr){ addr := 0x1000 + 79 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr)) (fp))(address_); }
+HeapReallocate :: inline proc "c" (oldAddress_ :   rawptr, newAllocationSize_ :   int   , zeroNewSpace_ :   bool) ->   rawptr{ addr := 0x1000 + 80 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   int   ,   bool) ->   rawptr) (fp))(oldAddress_, newAllocationSize_, zeroNewSpace_); }
+HeapValidate :: inline proc "c" (){ addr := 0x1000 + 81 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+MemoryAllocate :: inline proc "c" (size_ :   int   ) ->   rawptr{ addr := 0x1000 + 82 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int   ) ->   rawptr) (fp))(size_); }
+MemoryCompare :: inline proc "c" (a_ :   rawptr, b_ :   rawptr, bytes_ :   int   ) ->   i32{ addr := 0x1000 + 83 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   rawptr,   int   ) ->   i32) (fp))(a_, b_, bytes_); }
+MemoryCopy :: inline proc "c" (destination_ :   rawptr, source_ :   rawptr, bytes_ :   int   ){ addr := 0x1000 + 84 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   rawptr,   int   )) (fp))(destination_, source_, bytes_); }
+MemoryCopyReverse :: inline proc "c" (_destination_ :   rawptr, _source_ :   rawptr, bytes_ :   int   ){ addr := 0x1000 + 85 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   rawptr,   int   )) (fp))(_destination_, _source_, bytes_); }
+MemoryFill :: inline proc "c" (from_ :   rawptr, to_ :   rawptr, byte_ :   u8     ){ addr := 0x1000 + 86 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   rawptr,   u8     )) (fp))(from_, to_, byte_); }
+MemoryFree :: inline proc "c" (address_ :   rawptr) ->   Error{ addr := 0x1000 + 87 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr) ->   Error) (fp))(address_); }
+MemoryMove :: inline proc "c" (_start_ :   rawptr, _end_ :   rawptr, amount_ :   int     , zeroEmptySpace_ :   bool){ addr := 0x1000 + 88 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   rawptr,   int     ,   bool)) (fp))(_start_, _end_, amount_, zeroEmptySpace_); }
+MemoryOpen :: inline proc "c" (size_ :   int   , name_ : string, flags_ :   u32     ) ->   Handle{ addr := 0x1000 + 89 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int   , ^u8, int,   u32     ) ->   Handle) (fp))(size_, raw_data(name_), len(name_), flags_); }
+MemoryShare :: inline proc "c" (sharedMemoryRegion_ :   Handle, targetProcess_ :   Handle, readOnly_ :   bool) ->   Handle{ addr := 0x1000 + 90 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   Handle,   bool) ->   Handle) (fp))(sharedMemoryRegion_, targetProcess_, readOnly_); }
+MemorySumBytes :: inline proc "c" (data_ :   ^u8     , bytes_ :   int   ) ->   u8     { addr := 0x1000 + 91 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^u8     ,   int   ) ->   u8     ) (fp))(data_, bytes_); }
+MemoryZero :: inline proc "c" (destination_ :   rawptr, bytes_ :   int   ){ addr := 0x1000 + 92 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   int   )) (fp))(destination_, bytes_); }
+ObjectMap :: inline proc "c" (object_ :   Handle, offset_ :   uint     , size_ :   int   , flags_ :   u32     ) ->   rawptr{ addr := 0x1000 + 93 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   uint     ,   int   ,   u32     ) ->   rawptr) (fp))(object_, offset_, size_, flags_); }
+Abort :: inline proc "c" (){ addr := 0x1000 + 94 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+Assert :: inline proc "c" (expression_ :   bool, failureMessage_ :   cstring  ){ addr := 0x1000 + 95 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  bool,   cstring  )) (fp))(expression_, failureMessage_); }
+CalculateFromUserExpression :: inline proc "c" (cExpression_ :   cstring  ) ->   CalculationValue{ addr := 0x1000 + 96 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  cstring  ) ->   CalculationValue) (fp))(cExpression_); }
+DoubleParse :: inline proc "c" (string_ : string, endptr_ :   ^^i8  ) ->   f64   { addr := 0x1000 + 97 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int,   ^^i8  ) ->   f64   ) (fp))(raw_data(string_), len(string_), endptr_); }
+ExtractArguments :: inline proc "c" (string_ :   ^i8  , bytes_ :   int   , delimiterByte_ :   u8     , replacementDelimiter_ :   u8     , argvAllocated_ :   int   , argv_ :   ^^i8  , argc_ :   ^int   ) ->   bool{ addr := 0x1000 + 98 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   int   ,   u8     ,   u8     ,   int   ,   ^^i8  ,   ^int   ) ->   bool) (fp))(string_, bytes_, delimiterByte_, replacementDelimiter_, argvAllocated_, argv_, argc_); }
+GetRandomU8 :: inline proc "c" () ->   u8     { addr := 0x1000 + 99 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   u8     ) (fp))(); }
+GetRandomU64 :: inline proc "c" () ->   u64     { addr := 0x1000 + 100 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   u64     ) (fp))(); }
+IntegerParse :: inline proc "c" (text_ : string) ->   i64    { addr := 0x1000 + 101 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int) ->   i64    ) (fp))(raw_data(text_), len(text_)); }
+Print :: inline proc "c" (format_ :   cstring  , _varargs_ : ..any){ addr := 0x1000 + 102 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  cstring  , ..any)) (fp))(format_, _varargs_); }
+PrintDirect :: inline proc "c" (string_ : string){ addr := 0x1000 + 103 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (^u8, int)) (fp))(raw_data(string_), len(string_)); }
+PrintHelloWorld :: inline proc "c" (){ addr := 0x1000 + 104 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+ProcessorReadTimeStamp :: inline proc "c" () ->   u64     { addr := 0x1000 + 105 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   u64     ) (fp))(); }
+RandomAddEntropy :: inline proc "c" (x_ :   u64     ){ addr := 0x1000 + 106 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  u64     )) (fp))(x_); }
+RandomSeed :: inline proc "c" (x_ :   u64     ){ addr := 0x1000 + 107 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  u64     )) (fp))(x_); }
+RectangleClip :: inline proc "c" (parent_ :   Rectangle, rectangle_ :   Rectangle, output_ :   ^Rectangle) ->   bool{ addr := 0x1000 + 108 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Rectangle,   Rectangle,   ^Rectangle) ->   bool) (fp))(parent_, rectangle_, output_); }
+Sort :: inline proc "c" (_base_ :   rawptr, nmemb_ :   int   , size_ :   int   , compar_ :   ComparisonCallbackFunction, argument_ :   Generic){ addr := 0x1000 + 109 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   int   ,   int   ,   ComparisonCallbackFunction,   Generic)) (fp))(_base_, nmemb_, size_, compar_, argument_); }
+SortWithSwapCallback :: inline proc "c" (_base_ :   rawptr, nmemb_ :   int   , size_ :   int   , compar_ :   ComparisonCallbackFunction, argument_ :   Generic, swap_ :   SwapCallbackFunction){ addr := 0x1000 + 110 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   int   ,   int   ,   ComparisonCallbackFunction,   Generic,   SwapCallbackFunction)) (fp))(_base_, nmemb_, size_, compar_, argument_, swap_); }
+StringLoadRaw :: inline proc "c" (cRule_ :   cstring  , formatValues_ :   ^FormatValue, formatValueCount_ :   int   ) ->   FormatValue{ addr := 0x1000 + 111 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  cstring  ,   ^FormatValue,   int   ) ->   FormatValue) (fp))(cRule_, formatValues_, formatValueCount_); }
+StringZeroTerminate :: inline proc "c" (string_ : string) ->   ^i8  { addr := 0x1000 + 112 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int) ->   ^i8  ) (fp))(raw_data(string_), len(string_)); }
+ColorBlend :: inline proc "c" (under_ :   u32     , over_ :   u32     , fullAlpha_ :   bool) ->   u32     { addr := 0x1000 + 113 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  u32     ,   u32     ,   bool) ->   u32     ) (fp))(under_, over_, fullAlpha_); }
+ColorConvertToRGB :: inline proc "c" (h_ :   f32  , s_ :   f32  , v_ :   f32  ) ->   u32     { addr := 0x1000 + 114 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ,   f32  ,   f32  ) ->   u32     ) (fp))(h_, s_, v_); }
+ColorConvertToHSV :: inline proc "c" (color_ :   u32     , h_ :   ^f32  , s_ :   ^f32  , v_ :   ^f32  ) ->   bool{ addr := 0x1000 + 115 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  u32     ,   ^f32  ,   ^f32  ,   ^f32  ) ->   bool) (fp))(color_, h_, s_, v_); }
+ColorParse :: inline proc "c" (string_ :   ^i8  , bytes_ :   int   ) ->   u32     { addr := 0x1000 + 116 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   int   ) ->   u32     ) (fp))(string_, bytes_); }
+DrawStandardIcon :: inline proc "c" (painter_ :   ^Painter, id_ :   u32     , size_ :   i32, region_ :   Rectangle, color_ :   u32     ) ->   bool{ addr := 0x1000 + 117 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Painter,   u32     ,   i32,   Rectangle,   u32     ) ->   bool) (fp))(painter_, id_, size_, region_, color_); }
+DrawStyledBox :: inline proc "c" (painter_ :   ^Painter, box_ :   StyledBox){ addr := 0x1000 + 118 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Painter,   StyledBox)) (fp))(painter_, box_); }
+DrawSurface :: inline proc "c" (destination_ :   Handle, source_ :   Handle, destinationRegion_ :   Rectangle, sourceRegion_ :   Rectangle, borderRegion_ :   Rectangle, mode_ :   DrawMode, alpha_ :   u16     ) ->   Error{ addr := 0x1000 + 119 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   Handle,   Rectangle,   Rectangle,   Rectangle,   DrawMode,   u16     ) ->   Error) (fp))(destination_, source_, destinationRegion_, sourceRegion_, borderRegion_, mode_, alpha_); }
+DrawSurface2 :: inline proc "c" (painter_ :   ^Painter, source_ :   Handle, destinationRegion_ :   Rectangle, sourceRegion_ :   Rectangle, alpha_ :   u16     ){ addr := 0x1000 + 120 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Painter,   Handle,   Rectangle,   Rectangle,   u16     )) (fp))(painter_, source_, destinationRegion_, sourceRegion_, alpha_); }
+DrawSurfaceClipped :: inline proc "c" (destination_ :   Handle, source_ :   Handle, destinationRegion_ :   Rectangle, sourceRegion_ :   Rectangle, borderRegion_ :   Rectangle, mode_ :   DrawMode, alpha_ :   u16     , clipRegion_ :   Rectangle) ->   Error{ addr := 0x1000 + 121 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   Handle,   Rectangle,   Rectangle,   Rectangle,   DrawMode,   u16     ,   Rectangle) ->   Error) (fp))(destination_, source_, destinationRegion_, sourceRegion_, borderRegion_, mode_, alpha_, clipRegion_); }
+DrawText :: inline proc "c" (painter_ :   ^Painter, plan_ :   ^TextPlan, bounds_ :   Rectangle, clip_ :   ^Rectangle, selectionProperties_ :   ^TextSelection){ addr := 0x1000 + 122 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Painter,   ^TextPlan,   Rectangle,   ^Rectangle,   ^TextSelection)) (fp))(painter_, plan_, bounds_, clip_, selectionProperties_); }
+FontGetName :: inline proc "c" (family_ :   u16     , buffer_ :   ^i8  , bufferBytes_ :   int   ) ->   int   { addr := 0x1000 + 123 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  u16     ,   ^i8  ,   int   ) ->   int   ) (fp))(family_, buffer_, bufferBytes_); }
+PainterBoundsClient :: inline proc "c" (painter_ :   ^Painter) ->   Rectangle{ addr := 0x1000 + 124 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Painter) ->   Rectangle) (fp))(painter_); }
+PainterBoundsInset :: inline proc "c" (painter_ :   ^Painter) ->   Rectangle{ addr := 0x1000 + 125 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Painter) ->   Rectangle) (fp))(painter_); }
+RedrawAll :: inline proc "c" (){ addr := 0x1000 + 126 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+SurfaceCreate :: inline proc "c" (width_ :   int   , height_ :   int   , flags_ :   u32     ) ->   Handle{ addr := 0x1000 + 127 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int   ,   int   ,   u32     ) ->   Handle) (fp))(width_, height_, flags_); }
+SurfaceGetLinearBuffer :: inline proc "c" (surface_ :   Handle, linearBuffer_ :   ^LinearBuffer){ addr := 0x1000 + 128 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle,   ^LinearBuffer)) (fp))(surface_, linearBuffer_); }
+SurfaceReset :: inline proc "c" (surface_ :   Handle){ addr := 0x1000 + 129 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle)) (fp))(surface_); }
+AudioStreamClose :: inline proc "c" (stream_ :   ^AudioStream){ addr := 0x1000 + 130 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^AudioStream)) (fp))(stream_); }
+AudioStreamOpen :: inline proc "c" (device_ :   AudioDeviceID, bufferLengthUs_ :   int   ) ->   ^AudioStream{ addr := 0x1000 + 131 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  AudioDeviceID,   int   ) ->   ^AudioStream) (fp))(device_, bufferLengthUs_); }
+AudioStreamNotify :: inline proc "c" (stream_ :   ^AudioStream){ addr := 0x1000 + 132 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^AudioStream)) (fp))(stream_); }
+AudioStreamSend :: inline proc "c" (destination_ :   ^AudioStream, source_ :   ^AudioStream, time_ :   ^f64   ) ->   Error{ addr := 0x1000 + 133 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^AudioStream,   ^AudioStream,   ^f64   ) ->   Error) (fp))(destination_, source_, time_); }
+EventCreate :: inline proc "c" (autoReset_ :   bool) ->   Handle{ addr := 0x1000 + 134 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  bool) ->   Handle) (fp))(autoReset_); }
+EventForward :: inline proc "c" (event_ :   Handle, eventSink_ :   Handle, data_ :   Generic){ addr := 0x1000 + 135 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle,   Handle,   Generic)) (fp))(event_, eventSink_, data_); }
+EventPoll :: inline proc "c" (event_ :   Handle) ->   Error{ addr := 0x1000 + 136 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle) ->   Error) (fp))(event_); }
+EventReset :: inline proc "c" (event_ :   Handle){ addr := 0x1000 + 137 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle)) (fp))(event_); }
+EventSet :: inline proc "c" (event_ :   Handle){ addr := 0x1000 + 138 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle)) (fp))(event_); }
+EventSinkCreate :: inline proc "c" (ignoreDuplicates_ :   bool) ->   Handle{ addr := 0x1000 + 139 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  bool) ->   Handle) (fp))(ignoreDuplicates_); }
+EventSinkPop :: inline proc "c" (eventSink_ :   Handle, data_ :   ^Generic) ->   Error{ addr := 0x1000 + 140 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   ^Generic) ->   Error) (fp))(eventSink_, data_); }
+EventSinkPush :: inline proc "c" (eventSink_ :   Handle, data_ :   Generic) ->   Error{ addr := 0x1000 + 141 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  Handle,   Generic) ->   Error) (fp))(eventSink_, data_); }
+MutexAcquire :: inline proc "c" (mutex_ :   ^Mutex){ addr := 0x1000 + 142 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Mutex)) (fp))(mutex_); }
+MutexDestroy :: inline proc "c" (mutex_ :   ^Mutex){ addr := 0x1000 + 143 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Mutex)) (fp))(mutex_); }
+MutexRelease :: inline proc "c" (mutex_ :   ^Mutex){ addr := 0x1000 + 144 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Mutex)) (fp))(mutex_); }
+PerformanceTimerPush :: inline proc "c" (){ addr := 0x1000 + 145 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+PerformanceTimerPop :: inline proc "c" () ->   f64   { addr := 0x1000 + 146 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   f64   ) (fp))(); }
+SchedulerYield :: inline proc "c" (){ addr := 0x1000 + 147 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" ()) (fp))(); }
+Sleep :: inline proc "c" (milliseconds_ :   u64     ){ addr := 0x1000 + 148 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  u64     )) (fp))(milliseconds_); }
+SpinlockAcquire :: inline proc "c" (spinlock_ :   ^Spinlock){ addr := 0x1000 + 149 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Spinlock)) (fp))(spinlock_); }
+SpinlockRelease :: inline proc "c" (spinlock_ :   ^Spinlock){ addr := 0x1000 + 150 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Spinlock)) (fp))(spinlock_); }
+TimerCreate :: inline proc "c" () ->   Handle{ addr := 0x1000 + 151 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" () ->   Handle) (fp))(); }
+TimerSet :: inline proc "c" (handle_ :   Handle, afterMs_ :   u64     , callback_ :   TimerCallbackFunction, argument_ :   Generic){ addr := 0x1000 + 152 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  Handle,   u64     ,   TimerCallbackFunction,   Generic)) (fp))(handle_, afterMs_, callback_, argument_); }
+Wait :: inline proc "c" (objects_ :   ^Handle, objectCount_ :   int   , timeoutMs_ :   uint     ) ->   uint     { addr := 0x1000 + 153 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Handle,   int   ,   uint     ) ->   uint     ) (fp))(objects_, objectCount_, timeoutMs_); }
+CStringLength :: inline proc "c" (string_ :   cstring  ) ->   int   { addr := 0x1000 + 154 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  cstring  ) ->   int   ) (fp))(string_); }
+StringAllocateAndFormat :: inline proc "c" (bytes_ :   ^int   , format_ :   cstring  , _varargs_ : ..any) ->   ^i8  { addr := 0x1000 + 155 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^int   ,   cstring  , ..any) ->   ^i8  ) (fp))(bytes_, format_, _varargs_); }
+StringCompare :: inline proc "c" (s1_ : string, s2_ : string) ->   i32{ addr := 0x1000 + 157 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int, ^u8, int) ->   i32) (fp))(raw_data(s1_), len(s1_), raw_data(s2_), len(s2_)); }
+StringCompareRaw :: inline proc "c" (s1_ : string, s2_ : string) ->   i32{ addr := 0x1000 + 158 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int, ^u8, int) ->   i32) (fp))(raw_data(s1_), len(s1_), raw_data(s2_), len(s2_)); }
+StringFormat :: inline proc "c" (buffer_ :   ^i8  , bufferLength_ :   int   , format_ :   cstring  , _varargs_ : ..any) ->   int      { addr := 0x1000 + 159 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   int   ,   cstring  , ..any) ->   int      ) (fp))(buffer_, bufferLength_, format_, _varargs_); }
+StringFormatTemporary :: inline proc "c" (format_ :   cstring  , _varargs_ : ..any) ->   ^i8  { addr := 0x1000 + 160 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  cstring  , ..any) ->   ^i8  ) (fp))(format_, _varargs_); }
+StringFormatAppend :: inline proc "c" (buffer_ :   ^i8  , bufferLength_ :   int   , bufferPosition_ :   ^int   , format_ :   cstring  , _varargs_ : ..any){ addr := 0x1000 + 162 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^i8  ,   int   ,   ^int   ,   cstring  , ..any)) (fp))(buffer_, bufferLength_, bufferPosition_, format_, _varargs_); }
+StringLength :: inline proc "c" (string_ :   ^i8  , end_ :   u8     ) ->   int   { addr := 0x1000 + 164 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   u8     ) ->   int   ) (fp))(string_, end_); }
+StringLoad :: inline proc "c" (cRule_ :   cstring  , formatValues_ :   ^FormatValue, formatValueCount_ :   int   , bytes_ :   ^int   ) ->   ^i8  { addr := 0x1000 + 165 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  cstring  ,   ^FormatValue,   int   ,   ^int   ) ->   ^i8  ) (fp))(cRule_, formatValues_, formatValueCount_, bytes_); }
+StringStartsWith :: inline proc "c" (string_ : string, prefix_ : string, caseInsensitive_ :   bool) ->   bool{ addr := 0x1000 + 166 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (^u8, int, ^u8, int,   bool) ->   bool) (fp))(raw_data(string_), len(string_), raw_data(prefix_), len(prefix_), caseInsensitive_); }
+CRTabs :: inline proc "c" (n_ :   i32) ->   i32{ addr := 0x1000 + 167 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   i32) (fp))(n_); }
+CRTacosf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 168 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTasinf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 169 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTassert :: inline proc "c" (test_ :   bool){ addr := 0x1000 + 170 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  bool)) (fp))(test_); }
+CRTatan2f :: inline proc "c" (y_ :   f32  , x_ :   f32  ) ->   f32  { addr := 0x1000 + 171 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ,   f32  ) ->   f32  ) (fp))(y_, x_); }
+CRTatanf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 172 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTatoi :: inline proc "c" (string_ :   ^i8  ) ->   i32{ addr := 0x1000 + 173 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ) ->   i32) (fp))(string_); }
+CRTcalloc :: inline proc "c" (num_ :   int   , size_ :   int   ) ->   rawptr{ addr := 0x1000 + 174 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int   ,   int   ) ->   rawptr) (fp))(num_, size_); }
+CRTceil :: inline proc "c" (x_ :   f64   ) ->   f64   { addr := 0x1000 + 175 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f64   ) ->   f64   ) (fp))(x_); }
+CRTceilf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 176 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTcosf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 177 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTfabs :: inline proc "c" (x_ :   f64   ) ->   f64   { addr := 0x1000 + 178 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f64   ) ->   f64   ) (fp))(x_); }
+CRTfabsl :: inline proc "c" (x_ :   [16]u8      ) ->   [16]u8      { addr := 0x1000 + 179 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  [16]u8      ) ->   [16]u8      ) (fp))(x_); }
+CRTfloor :: inline proc "c" (x_ :   f64   ) ->   f64   { addr := 0x1000 + 180 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f64   ) ->   f64   ) (fp))(x_); }
+CRTfloorf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 181 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTfmodf :: inline proc "c" (x_ :   f32  , y_ :   f32  ) ->   f32  { addr := 0x1000 + 182 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ,   f32  ) ->   f32  ) (fp))(x_, y_); }
+CRTfree :: inline proc "c" (ptr_ :   rawptr){ addr := 0x1000 + 183 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr)) (fp))(ptr_); }
+CRTgetenv :: inline proc "c" (name_ :   ^i8  ) ->   ^i8  { addr := 0x1000 + 184 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ) ->   ^i8  ) (fp))(name_); }
+CRTisalpha :: inline proc "c" (c_ :   i32) ->   i32{ addr := 0x1000 + 185 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   i32) (fp))(c_); }
+CRTisdigit :: inline proc "c" (c_ :   i32) ->   i32{ addr := 0x1000 + 186 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   i32) (fp))(c_); }
+CRTisspace :: inline proc "c" (c_ :   i32) ->   i32{ addr := 0x1000 + 187 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   i32) (fp))(c_); }
+CRTisupper :: inline proc "c" (c_ :   i32) ->   i32{ addr := 0x1000 + 188 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   i32) (fp))(c_); }
+CRTisxdigit :: inline proc "c" (c_ :   i32) ->   i32{ addr := 0x1000 + 189 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   i32) (fp))(c_); }
+CRTmalloc :: inline proc "c" (size_ :   int   ) ->   rawptr{ addr := 0x1000 + 190 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  int   ) ->   rawptr) (fp))(size_); }
+CRTmemchr :: inline proc "c" (_s_ :   rawptr, _c_ :   i32, n_ :   int   ) ->   rawptr{ addr := 0x1000 + 191 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   i32,   int   ) ->   rawptr) (fp))(_s_, _c_, n_); }
+CRTmemcmp :: inline proc "c" (s1_ :   rawptr, s2_ :   rawptr, n_ :   int   ) ->   i32{ addr := 0x1000 + 192 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   rawptr,   int   ) ->   i32) (fp))(s1_, s2_, n_); }
+CRTmemcpy :: inline proc "c" (dest_ :   rawptr, src_ :   rawptr, n_ :   int   ) ->   rawptr{ addr := 0x1000 + 193 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   rawptr,   int   ) ->   rawptr) (fp))(dest_, src_, n_); }
+CRTmemmove :: inline proc "c" (dest_ :   rawptr, src_ :   rawptr, n_ :   int   ) ->   rawptr{ addr := 0x1000 + 194 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   rawptr,   int   ) ->   rawptr) (fp))(dest_, src_, n_); }
+CRTmemset :: inline proc "c" (s_ :   rawptr, c_ :   i32, n_ :   int   ) ->   rawptr{ addr := 0x1000 + 195 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   i32,   int   ) ->   rawptr) (fp))(s_, c_, n_); }
+CRTqsort :: inline proc "c" (_base_ :   rawptr, nmemb_ :   int   , size_ :   int   , compar_ :   CRTComparisonCallback){ addr := 0x1000 + 196 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  rawptr,   int   ,   int   ,   CRTComparisonCallback)) (fp))(_base_, nmemb_, size_, compar_); }
+CRTrealloc :: inline proc "c" (ptr_ :   rawptr, size_ :   int   ) ->   rawptr{ addr := 0x1000 + 197 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  rawptr,   int   ) ->   rawptr) (fp))(ptr_, size_); }
+CRTsinf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 198 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTsnprintf :: inline proc "c" (buffer_ :   ^i8  , bufferSize_ :   int   , format_ :   ^i8  , _varargs_ : ..any) ->   i32{ addr := 0x1000 + 199 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   int   ,   ^i8  , ..any) ->   i32) (fp))(buffer_, bufferSize_, format_, _varargs_); }
+CRTsprintf :: inline proc "c" (buffer_ :   ^i8  , format_ :   ^i8  , _varargs_ : ..any) ->   i32{ addr := 0x1000 + 200 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^i8  , ..any) ->   i32) (fp))(buffer_, format_, _varargs_); }
+CRTsqrt :: inline proc "c" (x_ :   f64   ) ->   f64   { addr := 0x1000 + 201 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f64   ) ->   f64   ) (fp))(x_); }
+CRTsqrtf :: inline proc "c" (x_ :   f32  ) ->   f32  { addr := 0x1000 + 202 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  f32  ) ->   f32  ) (fp))(x_); }
+CRTsqrtl :: inline proc "c" (x_ :   [16]u8      ) ->   [16]u8      { addr := 0x1000 + 203 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  [16]u8      ) ->   [16]u8      ) (fp))(x_); }
+CRTstrcat :: inline proc "c" (dest_ :   ^i8  , src_ :   ^i8  ) ->   ^i8  { addr := 0x1000 + 204 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^i8  ) ->   ^i8  ) (fp))(dest_, src_); }
+CRTstrchr :: inline proc "c" (s_ :   ^i8  , c_ :   i32) ->   ^i8  { addr := 0x1000 + 205 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   i32) ->   ^i8  ) (fp))(s_, c_); }
+CRTstrcmp :: inline proc "c" (s1_ :   ^i8  , s2_ :   ^i8  ) ->   i32{ addr := 0x1000 + 206 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^i8  ) ->   i32) (fp))(s1_, s2_); }
+CRTstrcpy :: inline proc "c" (dest_ :   ^i8  , src_ :   ^i8  ) ->   ^i8  { addr := 0x1000 + 207 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^i8  ) ->   ^i8  ) (fp))(dest_, src_); }
+CRTstrerror :: inline proc "c" (errnum_ :   i32) ->   ^i8  { addr := 0x1000 + 208 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   ^i8  ) (fp))(errnum_); }
+CRTstrlen :: inline proc "c" (s_ :   ^i8  ) ->   int   { addr := 0x1000 + 209 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ) ->   int   ) (fp))(s_); }
+CRTstrncmp :: inline proc "c" (s1_ :   ^i8  , s2_ :   ^i8  , n_ :   int   ) ->   i32{ addr := 0x1000 + 210 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^i8  ,   int   ) ->   i32) (fp))(s1_, s2_, n_); }
+CRTstrncpy :: inline proc "c" (dest_ :   ^i8  , src_ :   ^i8  , n_ :   int   ) ->   ^i8  { addr := 0x1000 + 211 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^i8  ,   int   ) ->   ^i8  ) (fp))(dest_, src_, n_); }
+CRTstrnlen :: inline proc "c" (s_ :   ^i8  , maxlen_ :   int   ) ->   int   { addr := 0x1000 + 212 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   int   ) ->   int   ) (fp))(s_, maxlen_); }
+CRTstrstr :: inline proc "c" (haystack_ :   ^i8  , needle_ :   ^i8  ) ->   ^i8  { addr := 0x1000 + 213 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^i8  ) ->   ^i8  ) (fp))(haystack_, needle_); }
+CRTstrtol :: inline proc "c" (nptr_ :   ^i8  , endptr_ :   ^^i8  , base_ :   i32) ->   i64 { addr := 0x1000 + 214 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^^i8  ,   i32) ->   i64 ) (fp))(nptr_, endptr_, base_); }
+CRTstrtoul :: inline proc "c" (nptr_ :   ^i8  , endptr_ :   ^^i8  , base_ :   i32) ->   u64     { addr := 0x1000 + 215 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^i8  ,   ^^i8  ,   i32) ->   u64     ) (fp))(nptr_, endptr_, base_); }
+CRTtolower :: inline proc "c" (c_ :   i32) ->   i32{ addr := 0x1000 + 216 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  i32) ->   i32) (fp))(c_); }
+NewPanel :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties) ->   ^Panel{ addr := 0x1000 + 218 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties) ->   ^Panel) (fp))(parent_, flags_, properties_); }
+NewSplitter :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties) ->   ^Splitter{ addr := 0x1000 + 219 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties) ->   ^Splitter) (fp))(parent_, flags_, properties_); }
+NewButton :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties, label_ : string) ->   ^Button{ addr := 0x1000 + 220 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties, ^u8, int) ->   ^Button) (fp))(parent_, flags_, properties_, raw_data(label_), len(label_)); }
+NewChoice :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties) ->   ^Choice{ addr := 0x1000 + 221 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties) ->   ^Choice) (fp))(parent_, flags_, properties_); }
+NewColorWell :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties, colorRGB_ :   u32     ) ->   ^ColorWell{ addr := 0x1000 + 222 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties,   u32     ) ->   ^ColorWell) (fp))(parent_, flags_, properties_, colorRGB_); }
+NewTextDisplay :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties, label_ : string) ->   ^TextDisplay{ addr := 0x1000 + 223 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties, ^u8, int) ->   ^TextDisplay) (fp))(parent_, flags_, properties_, raw_data(label_), len(label_)); }
+NewIconDisplay :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties, iconID_ :   u32     ) ->   ^IconDisplay{ addr := 0x1000 + 224 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties,   u32     ) ->   ^IconDisplay) (fp))(parent_, flags_, properties_, iconID_); }
+NewImageDisplay :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties) ->   ^ImageDisplay{ addr := 0x1000 + 225 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties) ->   ^ImageDisplay) (fp))(parent_, flags_, properties_); }
+NewListView :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties, cItemStyle_ :   cstring  , cHeaderItemStyle_ :   cstring  , cFooterItemStyle_ :   cstring  ) ->   ^ListView{ addr := 0x1000 + 226 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties,   cstring  ,   cstring  ,   cstring  ) ->   ^ListView) (fp))(parent_, flags_, properties_, cItemStyle_, cHeaderItemStyle_, cFooterItemStyle_); }
+NewTextbox :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties) ->   ^Textbox{ addr := 0x1000 + 227 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties) ->   ^Textbox) (fp))(parent_, flags_, properties_); }
+NewCustomElement :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , properties_ :   ElementProperties) ->   ^Element{ addr := 0x1000 + 228 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   ElementProperties) ->   ^Element) (fp))(parent_, flags_, properties_); }
+NewWindow :: inline proc "c" (instance_ :   ^INSTANCE_TYPE, style_ :   WindowStyle) ->   ^Window{ addr := 0x1000 + 229 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^INSTANCE_TYPE,   WindowStyle) ->   ^Window) (fp))(instance_, style_); }
+NewMenu :: inline proc "c" (source_ :   ^Element, flags_ :   u64     , userCallback_ :   MenuCallbackFunction, _context_ :   Generic, fixedWidth_ :   i32, fixedHeight_ :   i32) ->   ^Menu{ addr := 0x1000 + 230 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ,   MenuCallbackFunction,   Generic,   i32,   i32) ->   ^Menu) (fp))(source_, flags_, userCallback_, _context_, fixedWidth_, fixedHeight_); }
+NewMenuItem :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , label_ : string, callback_ :   MenuCallbackFunction, _context_ :   Generic){ addr := 0x1000 + 231 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   u64     , ^u8, int,   MenuCallbackFunction,   Generic)) (fp))(parent_, flags_, raw_data(label_), len(label_), callback_, _context_); }
+NewMenuCommand :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     , label_ : string, command_ :   ^Command){ addr := 0x1000 + 232 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   u64     , ^u8, int,   ^Command)) (fp))(parent_, flags_, raw_data(label_), len(label_), command_); }
+NewMenuColumn :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     ) ->   ^Element{ addr := 0x1000 + 233 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ) ->   ^Element) (fp))(parent_, flags_); }
+NewMenuSeparator :: inline proc "c" (parent_ :   ^Element){ addr := 0x1000 + 234 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element)) (fp))(parent_); }
+NewSpacer :: inline proc "c" (parent_ :   ^Element, flags_ :   u64     ) ->   ^Element{ addr := 0x1000 + 235 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element,   u64     ) ->   ^Element) (fp))(parent_, flags_); }
+NewElementGroup :: inline proc "c" (instance_ :   ^INSTANCE_TYPE) ->   ^ElementGroup{ addr := 0x1000 + 236 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^INSTANCE_TYPE) ->   ^ElementGroup) (fp))(instance_); }
+NewTextPlan :: inline proc "c" (properties_ :   ^TextDisplayProperties, bounds_ :   Rectangle, string_ :   ^i8  , textRuns_ :   ^TextRun, textRunCount_ :   int   , singleUse_ :   bool) ->   ^TextPlan{ addr := 0x1000 + 237 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^TextDisplayProperties,   Rectangle,   ^i8  ,   ^TextRun,   int   ,   bool) ->   ^TextPlan) (fp))(properties_, bounds_, string_, textRuns_, textRunCount_, singleUse_); }
+NewStore :: inline proc "c" (instance_ :   ^INSTANCE_TYPE, pullCallback_ :   StorePullCallbackFunction, pullCallbackContext_ :   Generic) ->   ^Store{ addr := 0x1000 + 238 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^INSTANCE_TYPE,   StorePullCallbackFunction,   Generic) ->   ^Store) (fp))(instance_, pullCallback_, pullCallbackContext_); }
+ElementDraw :: inline proc "c" (element_ :   ^Element, painter_ :   ^Painter){ addr := 0x1000 + 239 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   ^Painter)) (fp))(element_, painter_); }
+ElementGetInstance :: inline proc "c" (element_ :   ^Element) ->   ^INSTANCE_TYPE{ addr := 0x1000 + 240 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   ^INSTANCE_TYPE) (fp))(element_); }
+ElementGetWindow :: inline proc "c" (element_ :   ^Element) ->   ^Window{ addr := 0x1000 + 241 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   ^Window) (fp))(element_); }
+ElementFocus :: inline proc "c" (element_ :   ^Element, ensureVisible_ :   bool){ addr := 0x1000 + 242 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   bool)) (fp))(element_, ensureVisible_); }
+ElementSetDisabled :: inline proc "c" (element_ :   ^Element, disabled_ :   bool){ addr := 0x1000 + 243 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   bool)) (fp))(element_, disabled_); }
+ElementSetHidden :: inline proc "c" (element_ :   ^Element, hidden_ :   bool){ addr := 0x1000 + 244 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   bool)) (fp))(element_, hidden_); }
+ElementSetCallback :: inline proc "c" (element_ :   ^Element, callback_ :   UICallbackFunction){ addr := 0x1000 + 245 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   UICallbackFunction)) (fp))(element_, callback_); }
+ElementGetSize :: inline proc "c" (element_ :   ^Element, width_ :   ^i32, height_ :   ^i32){ addr := 0x1000 + 246 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   ^i32,   ^i32)) (fp))(element_, width_, height_); }
+ElementRepaint :: inline proc "c" (element_ :   ^Element, all_ :   bool, region_ :   Rectangle){ addr := 0x1000 + 247 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   bool,   Rectangle)) (fp))(element_, all_, region_); }
+ElementSetData :: inline proc "c" (element_ :   ^Element, data_ :   Generic){ addr := 0x1000 + 248 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   Generic)) (fp))(element_, data_); }
+ElementGetData :: inline proc "c" (element_ :   ^Element) ->   Generic{ addr := 0x1000 + 249 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   Generic) (fp))(element_); }
+ElementSetCellRange :: inline proc "c" (element_ :   ^Element, xFrom_ :   i32, yFrom_ :   i32, xTo_ :   i32, yTo_ :   i32){ addr := 0x1000 + 250 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   i32,   i32,   i32,   i32)) (fp))(element_, xFrom_, yFrom_, xTo_, yTo_); }
+ElementAddGroup :: inline proc "c" (element_ :   ^Element, group_ :   ^ElementGroup){ addr := 0x1000 + 251 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   ^ElementGroup)) (fp))(element_, group_); }
+ElementGetInsets :: inline proc "c" (element_ :   ^Element) ->   Rectangle{ addr := 0x1000 + 252 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   Rectangle) (fp))(element_); }
+ElementGetInsetSize :: inline proc "c" (element_ :   ^Element) ->   Rectangle{ addr := 0x1000 + 253 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   Rectangle) (fp))(element_); }
+ElementGetPreferredSize :: inline proc "c" (element_ :   ^Element) ->   Rectangle{ addr := 0x1000 + 254 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   Rectangle) (fp))(element_); }
+ElementMove :: inline proc "c" (element_ :   ^Element, x_ :   i32, y_ :   i32, width_ :   i32, height_ :   i32){ addr := 0x1000 + 255 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element,   i32,   i32,   i32,   i32)) (fp))(element_, x_, y_, width_, height_); }
+ElementGetLayoutParent :: inline proc "c" (element_ :   ^Element) ->   ^Element{ addr := 0x1000 + 256 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   ^Element) (fp))(element_); }
+ElementDestroy :: inline proc "c" (element_ :   ^Element){ addr := 0x1000 + 257 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element)) (fp))(element_); }
+ElementDestroyContents :: inline proc "c" (element_ :   ^Element){ addr := 0x1000 + 258 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Element)) (fp))(element_); }
+ElementStartAnimating :: inline proc "c" (element_ :   ^Element) ->   bool{ addr := 0x1000 + 259 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Element) ->   bool) (fp))(element_); }
+ElementGroupSetCallback :: inline proc "c" (group_ :   ^ElementGroup, callback_ :   UICallbackFunction){ addr := 0x1000 + 260 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ElementGroup,   UICallbackFunction)) (fp))(group_, callback_); }
+ElementGroupSetDisabled :: inline proc "c" (group_ :   ^ElementGroup, disabled_ :   bool){ addr := 0x1000 + 261 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ElementGroup,   bool)) (fp))(group_, disabled_); }
+ElementGroupSetHidden :: inline proc "c" (group_ :   ^ElementGroup, hidden_ :   bool){ addr := 0x1000 + 262 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ElementGroup,   bool)) (fp))(group_, hidden_); }
+ElementGroupRepaintAll :: inline proc "c" (group_ :   ^ElementGroup){ addr := 0x1000 + 263 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ElementGroup)) (fp))(group_); }
+WindowGetBounds :: inline proc "c" (window_ :   ^Window) ->   Rectangle{ addr := 0x1000 + 264 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Window) ->   Rectangle) (fp))(window_); }
+WindowGetToolbar :: inline proc "c" (window_ :   ^Window) ->   ^Element{ addr := 0x1000 + 265 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Window) ->   ^Element) (fp))(window_); }
+WindowSetIcon :: inline proc "c" (window_ :   ^Window, iconID_ :   u32     ){ addr := 0x1000 + 266 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Window,   u32     )) (fp))(window_, iconID_); }
+WindowSetTitle :: inline proc "c" (window_ :   ^Window, title_ : string){ addr := 0x1000 + 267 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Window, ^u8, int)) (fp))(window_, raw_data(title_), len(title_)); }
+MenuGetSource :: inline proc "c" (menu_ :   ^Menu) ->   ^Element{ addr := 0x1000 + 268 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Menu) ->   ^Element) (fp))(menu_); }
+ButtonSetIcon :: inline proc "c" (button_ :   ^Button, iconID_ :   u32     ){ addr := 0x1000 + 269 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Button,   u32     )) (fp))(button_, iconID_); }
+ButtonSetCheck :: inline proc "c" (button_ :   ^Button, checkState_ :   CheckState, sendUpdatedMessage_ :   bool){ addr := 0x1000 + 270 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Button,   CheckState,   bool)) (fp))(button_, checkState_, sendUpdatedMessage_); }
+ButtonGetCheck :: inline proc "c" (button_ :   ^Button) ->   CheckState{ addr := 0x1000 + 271 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Button) ->   CheckState) (fp))(button_); }
+ButtonOnCommand :: inline proc "c" (button_ :   ^Button, callback_ :   CommandCallbackFunction, command_ :   ^Command){ addr := 0x1000 + 272 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Button,   CommandCallbackFunction,   ^Command)) (fp))(button_, callback_, command_); }
+ButtonSetCheckBuddy :: inline proc "c" (button_ :   ^Button, checkBuddy_ :   ^Element){ addr := 0x1000 + 273 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Button,   ^Element)) (fp))(button_, checkBuddy_); }
+ButtonGetCheckBuddy :: inline proc "c" (button_ :   ^Button) ->   ^Element{ addr := 0x1000 + 274 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Button) ->   ^Element) (fp))(button_); }
+ButtonBindLabel :: inline proc "c" (button_ :   ^Button, cRule_ :   ^i8  ){ addr := 0x1000 + 275 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Button,   ^i8  )) (fp))(button_, cRule_); }
+TextboxFind :: inline proc "c" (textbox_ :   ^Textbox, string_ : string, line_ :   ^i32    , byte_ :   ^i32    , flags_ :   u32     ) ->   bool{ addr := 0x1000 + 276 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Textbox, ^u8, int,   ^i32    ,   ^i32    ,   u32     ) ->   bool) (fp))(textbox_, raw_data(string_), len(string_), line_, byte_, flags_); }
+TextboxInsert :: inline proc "c" (textbox_ :   ^Textbox, string_ : string, sendUpdatedMessage_ :   bool){ addr := 0x1000 + 277 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox, ^u8, int,   bool)) (fp))(textbox_, raw_data(string_), len(string_), sendUpdatedMessage_); }
+TextboxGetContents :: inline proc "c" (textbox_ :   ^Textbox, bytes_ :   ^int   ) ->   ^i8  { addr := 0x1000 + 278 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Textbox,   ^int   ) ->   ^i8  ) (fp))(textbox_, bytes_); }
+TextboxGetLineLength :: inline proc "c" (textbox_ :   ^Textbox, line_ :   uint     ) ->   int   { addr := 0x1000 + 279 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Textbox,   uint     ) ->   int   ) (fp))(textbox_, line_); }
+TextboxGetSelection :: inline proc "c" (textbox_ :   ^Textbox, fromLine_ :   ^i32    , fromByte_ :   ^i32    , toLine_ :   ^i32    , toByte_ :   ^i32    ){ addr := 0x1000 + 280 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox,   ^i32    ,   ^i32    ,   ^i32    ,   ^i32    )) (fp))(textbox_, fromLine_, fromByte_, toLine_, toByte_); }
+TextboxMoveCaret :: inline proc "c" (textbox_ :   ^Textbox, line_ :   i32    , byte_ :   i32    ){ addr := 0x1000 + 281 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox,   i32    ,   i32    )) (fp))(textbox_, line_, byte_); }
+TextboxSetSelection :: inline proc "c" (textbox_ :   ^Textbox, fromLine_ :   i32    , fromByte_ :   i32    , toLine_ :   i32    , toByte_ :   i32    ){ addr := 0x1000 + 282 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox,   i32    ,   i32    ,   i32    ,   i32    )) (fp))(textbox_, fromLine_, fromByte_, toLine_, toByte_); }
+TextboxSelectAll :: inline proc "c" (textbox_ :   ^Textbox){ addr := 0x1000 + 283 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox)) (fp))(textbox_); }
+TextboxClear :: inline proc "c" (textbox_ :   ^Textbox, sendUpdatedMessage_ :   bool){ addr := 0x1000 + 284 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox,   bool)) (fp))(textbox_, sendUpdatedMessage_); }
+TextboxUseNumberOverlay :: inline proc "c" (textbox_ :   ^Textbox, defaultBehaviour_ :   bool){ addr := 0x1000 + 285 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox,   bool)) (fp))(textbox_, defaultBehaviour_); }
+TextboxUseBreadcrumbOverlay :: inline proc "c" (textbox_ :   ^Textbox){ addr := 0x1000 + 286 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Textbox)) (fp))(textbox_); }
+PanelSetBands :: inline proc "c" (panel_ :   ^Panel, columnCount_ :   int   , rowCount_ :   int   , columns_ :   ^PanelBand, rows_ :   ^PanelBand){ addr := 0x1000 + 287 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Panel,   int   ,   int   ,   ^PanelBand,   ^PanelBand)) (fp))(panel_, columnCount_, rowCount_, columns_, rows_); }
+PanelSwitchTo :: inline proc "c" (panel_ :   ^Panel, targetChild_ :   ^Element, transitionType_ :   TransitionType){ addr := 0x1000 + 288 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Panel,   ^Element,   TransitionType)) (fp))(panel_, targetChild_, transitionType_); }
+TextPlanGetWidth :: inline proc "c" (plan_ :   ^TextPlan) ->   i32{ addr := 0x1000 + 289 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^TextPlan) ->   i32) (fp))(plan_); }
+TextPlanGetHeight :: inline proc "c" (plan_ :   ^TextPlan) ->   i32{ addr := 0x1000 + 290 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^TextPlan) ->   i32) (fp))(plan_); }
+TextPlanGetLineCount :: inline proc "c" (plan_ :   ^TextPlan) ->   int   { addr := 0x1000 + 291 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^TextPlan) ->   int   ) (fp))(plan_); }
+TextPlanDestroy :: inline proc "c" (plan_ :   ^TextPlan){ addr := 0x1000 + 292 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^TextPlan)) (fp))(plan_); }
+TextDisplaySetContents :: inline proc "c" (display_ :   ^TextDisplay, contents_ : string){ addr := 0x1000 + 293 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^TextDisplay, ^u8, int)) (fp))(display_, raw_data(contents_), len(contents_)); }
+TextDisplayBindContents :: inline proc "c" (display_ :   ^TextDisplay, cRule_ :   ^i8  , store_ :   ^Store, id_ :   Generic, values_ :   ^i32, valueCount_ :   int   ){ addr := 0x1000 + 294 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^TextDisplay,   ^i8  ,   ^Store,   Generic,   ^i32,   int   )) (fp))(display_, cRule_, store_, id_, values_, valueCount_); }
+TextDisplayUnbindContents :: inline proc "c" (display_ :   ^TextDisplay){ addr := 0x1000 + 295 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^TextDisplay)) (fp))(display_); }
+StoreDestroy :: inline proc "c" (store_ :   ^Store){ addr := 0x1000 + 296 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Store)) (fp))(store_); }
+StoreObserve :: inline proc "c" (store_ :   ^Store, id_ :   Generic, tag_ :   i32, callback_ :   StoreCallbackFunction, _context_ :   Generic, callNow_ :   bool){ addr := 0x1000 + 297 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Store,   Generic,   i32,   StoreCallbackFunction,   Generic,   bool)) (fp))(store_, id_, tag_, callback_, _context_, callNow_); }
+StoreUnobserve :: inline proc "c" (store_ :   ^Store, id_ :   Generic, callback_ :   StoreCallbackFunction, _context_ :   Generic){ addr := 0x1000 + 298 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Store,   Generic,   StoreCallbackFunction,   Generic)) (fp))(store_, id_, callback_, _context_); }
+StoreNotify :: inline proc "c" (store_ :   ^Store, id_ :   Generic, tag_ :   i32){ addr := 0x1000 + 299 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Store,   Generic,   i32)) (fp))(store_, id_, tag_); }
+StoreSet :: inline proc "c" (store_ :   ^Store, id_ :   Generic, tag_ :   i32, value_ :   FormatValue){ addr := 0x1000 + 300 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Store,   Generic,   i32,   FormatValue)) (fp))(store_, id_, tag_, value_); }
+StoreGet :: inline proc "c" (store_ :   ^Store, id_ :   Generic, tag_ :   i32, defaultValue_ :   FormatValue) ->   FormatValue{ addr := 0x1000 + 301 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Store,   Generic,   i32,   FormatValue) ->   FormatValue) (fp))(store_, id_, tag_, defaultValue_); }
+StoreDispatchNotifications :: inline proc "c" (store_ :   ^Store){ addr := 0x1000 + 302 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Store)) (fp))(store_); }
+ColorWellGetRGB :: inline proc "c" (well_ :   ^ColorWell) ->   u32     { addr := 0x1000 + 303 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^ColorWell) ->   u32     ) (fp))(well_); }
+ColorWellSetRGB :: inline proc "c" (well_ :   ^ColorWell, colorRGB_ :   u32     , sendChangedMessage_ :   bool){ addr := 0x1000 + 304 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ColorWell,   u32     ,   bool)) (fp))(well_, colorRGB_, sendChangedMessage_); }
+ColorWellSetIndeterminate :: inline proc "c" (well_ :   ^ColorWell){ addr := 0x1000 + 305 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ColorWell)) (fp))(well_); }
+ChoiceAddMenuItem :: inline proc "c" (choice_ :   ^Choice, item_ :   Generic){ addr := 0x1000 + 306 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Choice,   Generic)) (fp))(choice_, item_); }
+ChoiceSetItem :: inline proc "c" (choice_ :   ^Choice, item_ :   Generic, sendUpdatedMessage_ :   bool){ addr := 0x1000 + 307 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^Choice,   Generic,   bool)) (fp))(choice_, item_, sendUpdatedMessage_); }
+ChoiceGetItem :: inline proc "c" (choice_ :   ^Choice) ->   Generic{ addr := 0x1000 + 308 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^Choice) ->   Generic) (fp))(choice_); }
+ListViewInsertGroup :: inline proc "c" (view_ :   ^ListView, group_ :   i32    , flags_ :   u32     ){ addr := 0x1000 + 309 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ListView,   i32    ,   u32     )) (fp))(view_, group_, flags_); }
+ListViewInsert :: inline proc "c" (view_ :   ^ListView, group_ :   i32    , firstIndex_ :   Generic, lastIndex_ :   Generic, count_ :   i64    ){ addr := 0x1000 + 310 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ListView,   i32    ,   Generic,   Generic,   i64    )) (fp))(view_, group_, firstIndex_, lastIndex_, count_); }
+ListViewRemove :: inline proc "c" (view_ :   ^ListView, group_ :   i32    , firstIndex_ :   Generic, lastIndex_ :   Generic, count_ :   i64    ){ addr := 0x1000 + 311 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ListView,   i32    ,   Generic,   Generic,   i64    )) (fp))(view_, group_, firstIndex_, lastIndex_, count_); }
+ListViewRemoveAll :: inline proc "c" (view_ :   ^ListView, group_ :   i32    ){ addr := 0x1000 + 312 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ListView,   i32    )) (fp))(view_, group_); }
+ListViewGetIndex :: inline proc "c" (view_ :   ^ListView, item_ :   ^Element) ->   Generic{ addr := 0x1000 + 313 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); return ((proc "c" (  ^ListView,   ^Element) ->   Generic) (fp))(view_, item_); }
+ListViewSetColumns :: inline proc "c" (view_ :   ^ListView, columns_ :   ^ListViewColumn, columnCount_ :   int   ){ addr := 0x1000 + 314 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ListView,   ^ListViewColumn,   int   )) (fp))(view_, columns_, columnCount_); }
+ListViewSelect :: inline proc "c" (view_ :   ^ListView, group_ :   i32    , index_ :   Generic){ addr := 0x1000 + 315 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ListView,   i32    ,   Generic)) (fp))(view_, group_, index_); }
+ListViewResetSearchBuffer :: inline proc "c" (view_ :   ^ListView){ addr := 0x1000 + 316 * size_of(int); fp := (rawptr(((^uintptr)(uintptr(addr)))^)); ((proc "c" (  ^ListView)) (fp))(view_); }

+ 2 - 2
examples/demo/demo.odin

@@ -712,8 +712,8 @@ union_type :: proc() {
 using_statement :: proc() {
 	fmt.println("\n# using statement");
 	// using can used to bring entities declared in a scope/namespace
-	// into the current scope. This can be applied to import declarations,
-	// import names, struct fields, procedure fields, and struct values.
+	// into the current scope. This can be applied to import names, struct 
+	// fields, procedure fields, and struct values.
 
 	Vector3 :: struct{x, y, z: f32};
 	{

+ 1 - 1
src/main.cpp

@@ -1917,7 +1917,7 @@ int main(int arg_count, char const **arg_ptr) {
 
 		if (build_context.cross_compiling && selected_target_metrics->metrics == &target_essence_amd64) {
 	#ifdef GB_SYSTEM_UNIX
-			system_exec_command_line_app("linker", "x86_64-essence-gcc \"%.*s.o\" -o \"%.*s\" %.*s %.*s",
+			system_exec_command_line_app("linker", "x86_64-essence-gcc \"%.*s.o\" -o \"%.*s\" %.*s %.*s", // -ffreestanding -nostdlib
 					LIT(output_base), LIT(output_base), LIT(build_context.link_flags), LIT(build_context.extra_linker_flags));
 	#else
 			gb_printf_err("Linking for cross compilation for this platform is not yet supported (%.*s %.*s)\n",