SDLConsts.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635
  1. #region License
  2. /* SDL2# - C# Wrapper for SDL2
  3. *
  4. * Copyright (c) 2013-2015 Ethan Lee.
  5. *
  6. * This software is provided 'as-is', without any express or implied warranty.
  7. * In no event will the authors be held liable for any damages arising from
  8. * the use of this software.
  9. *
  10. * Permission is granted to anyone to use this software for any purpose,
  11. * including commercial applications, and to alter it and redistribute it
  12. * freely, subject to the following restrictions:
  13. *
  14. * 1. The origin of this software must not be misrepresented; you must not
  15. * claim that you wrote the original software. If you use this software in a
  16. * product, an acknowledgment in the product documentation would be
  17. * appreciated but is not required.
  18. *
  19. * 2. Altered source versions must be plainly marked as such, and must not be
  20. * misrepresented as being the original software.
  21. *
  22. * 3. This notice may not be removed or altered from any source distribution.
  23. *
  24. * Ethan "flibitijibibo" Lee <[email protected]>
  25. *
  26. */
  27. #endregion
  28. namespace AtomicEngine
  29. {
  30. public static class SDL
  31. {
  32. public const int SDL_BUTTON_LEFT = 1;
  33. public const int SDL_BUTTON_MIDDLE = 2;
  34. public const int SDL_BUTTON_RIGHT = 3;
  35. public const int SDL_BUTTON_X1 = 4;
  36. public const int SDL_BUTTON_X2 = 5;
  37. public const int SDL_BUTTON_LMASK = (1 << ((int)SDL_BUTTON_LEFT - 1));
  38. public const int SDL_BUTTON_MMASK = (1 << ((int)SDL_BUTTON_MIDDLE - 1));
  39. public const int SDL_BUTTON_RMASK = (1 << ((int)SDL_BUTTON_RIGHT - 1));
  40. public const int SDL_BUTTON_X1MASK = (1 << ((int)SDL_BUTTON_X1 - 1));
  41. public const int SDL_BUTTON_X2MASK = (1 << ((int)SDL_BUTTON_X2 - 1));
  42. public const byte SDL_HAT_CENTERED = 0x00;
  43. public const byte SDL_HAT_UP = 0x01;
  44. public const byte SDL_HAT_RIGHT = 0x02;
  45. public const byte SDL_HAT_DOWN = 0x04;
  46. public const byte SDL_HAT_LEFT = 0x08;
  47. public const byte SDL_HAT_RIGHTUP = SDL_HAT_RIGHT | SDL_HAT_UP;
  48. public const byte SDL_HAT_RIGHTDOWN = SDL_HAT_RIGHT | SDL_HAT_DOWN;
  49. public const byte SDL_HAT_LEFTUP = SDL_HAT_LEFT | SDL_HAT_UP;
  50. public const byte SDL_HAT_LEFTDOWN = SDL_HAT_LEFT | SDL_HAT_DOWN;
  51. public enum SDL_GameControllerButton
  52. {
  53. SDL_CONTROLLER_BUTTON_INVALID = -1,
  54. SDL_CONTROLLER_BUTTON_A,
  55. SDL_CONTROLLER_BUTTON_B,
  56. SDL_CONTROLLER_BUTTON_X,
  57. SDL_CONTROLLER_BUTTON_Y,
  58. SDL_CONTROLLER_BUTTON_BACK,
  59. SDL_CONTROLLER_BUTTON_GUIDE,
  60. SDL_CONTROLLER_BUTTON_START,
  61. SDL_CONTROLLER_BUTTON_LEFTSTICK,
  62. SDL_CONTROLLER_BUTTON_RIGHTSTICK,
  63. SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
  64. SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
  65. SDL_CONTROLLER_BUTTON_DPAD_UP,
  66. SDL_CONTROLLER_BUTTON_DPAD_DOWN,
  67. SDL_CONTROLLER_BUTTON_DPAD_LEFT,
  68. SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
  69. SDL_CONTROLLER_BUTTON_MAX,
  70. }
  71. public enum SDL_GameControllerAxis
  72. {
  73. SDL_CONTROLLER_AXIS_INVALID = -1,
  74. SDL_CONTROLLER_AXIS_LEFTX,
  75. SDL_CONTROLLER_AXIS_LEFTY,
  76. SDL_CONTROLLER_AXIS_RIGHTX,
  77. SDL_CONTROLLER_AXIS_RIGHTY,
  78. SDL_CONTROLLER_AXIS_TRIGGERLEFT,
  79. SDL_CONTROLLER_AXIS_TRIGGERRIGHT,
  80. SDL_CONTROLLER_AXIS_MAX
  81. }
  82. /* Scancodes based off USB keyboard page (0x07) */
  83. public enum SDL_Scancode
  84. {
  85. SDL_SCANCODE_UNKNOWN = 0,
  86. SDL_SCANCODE_A = 4,
  87. SDL_SCANCODE_B = 5,
  88. SDL_SCANCODE_C = 6,
  89. SDL_SCANCODE_D = 7,
  90. SDL_SCANCODE_E = 8,
  91. SDL_SCANCODE_F = 9,
  92. SDL_SCANCODE_G = 10,
  93. SDL_SCANCODE_H = 11,
  94. SDL_SCANCODE_I = 12,
  95. SDL_SCANCODE_J = 13,
  96. SDL_SCANCODE_K = 14,
  97. SDL_SCANCODE_L = 15,
  98. SDL_SCANCODE_M = 16,
  99. SDL_SCANCODE_N = 17,
  100. SDL_SCANCODE_O = 18,
  101. SDL_SCANCODE_P = 19,
  102. SDL_SCANCODE_Q = 20,
  103. SDL_SCANCODE_R = 21,
  104. SDL_SCANCODE_S = 22,
  105. SDL_SCANCODE_T = 23,
  106. SDL_SCANCODE_U = 24,
  107. SDL_SCANCODE_V = 25,
  108. SDL_SCANCODE_W = 26,
  109. SDL_SCANCODE_X = 27,
  110. SDL_SCANCODE_Y = 28,
  111. SDL_SCANCODE_Z = 29,
  112. SDL_SCANCODE_1 = 30,
  113. SDL_SCANCODE_2 = 31,
  114. SDL_SCANCODE_3 = 32,
  115. SDL_SCANCODE_4 = 33,
  116. SDL_SCANCODE_5 = 34,
  117. SDL_SCANCODE_6 = 35,
  118. SDL_SCANCODE_7 = 36,
  119. SDL_SCANCODE_8 = 37,
  120. SDL_SCANCODE_9 = 38,
  121. SDL_SCANCODE_0 = 39,
  122. SDL_SCANCODE_RETURN = 40,
  123. SDL_SCANCODE_ESCAPE = 41,
  124. SDL_SCANCODE_BACKSPACE = 42,
  125. SDL_SCANCODE_TAB = 43,
  126. SDL_SCANCODE_SPACE = 44,
  127. SDL_SCANCODE_MINUS = 45,
  128. SDL_SCANCODE_EQUALS = 46,
  129. SDL_SCANCODE_LEFTBRACKET = 47,
  130. SDL_SCANCODE_RIGHTBRACKET = 48,
  131. SDL_SCANCODE_BACKSLASH = 49,
  132. SDL_SCANCODE_NONUSHASH = 50,
  133. SDL_SCANCODE_SEMICOLON = 51,
  134. SDL_SCANCODE_APOSTROPHE = 52,
  135. SDL_SCANCODE_GRAVE = 53,
  136. SDL_SCANCODE_COMMA = 54,
  137. SDL_SCANCODE_PERIOD = 55,
  138. SDL_SCANCODE_SLASH = 56,
  139. SDL_SCANCODE_CAPSLOCK = 57,
  140. SDL_SCANCODE_F1 = 58,
  141. SDL_SCANCODE_F2 = 59,
  142. SDL_SCANCODE_F3 = 60,
  143. SDL_SCANCODE_F4 = 61,
  144. SDL_SCANCODE_F5 = 62,
  145. SDL_SCANCODE_F6 = 63,
  146. SDL_SCANCODE_F7 = 64,
  147. SDL_SCANCODE_F8 = 65,
  148. SDL_SCANCODE_F9 = 66,
  149. SDL_SCANCODE_F10 = 67,
  150. SDL_SCANCODE_F11 = 68,
  151. SDL_SCANCODE_F12 = 69,
  152. SDL_SCANCODE_PRINTSCREEN = 70,
  153. SDL_SCANCODE_SCROLLLOCK = 71,
  154. SDL_SCANCODE_PAUSE = 72,
  155. SDL_SCANCODE_INSERT = 73,
  156. SDL_SCANCODE_HOME = 74,
  157. SDL_SCANCODE_PAGEUP = 75,
  158. SDL_SCANCODE_DELETE = 76,
  159. SDL_SCANCODE_END = 77,
  160. SDL_SCANCODE_PAGEDOWN = 78,
  161. SDL_SCANCODE_RIGHT = 79,
  162. SDL_SCANCODE_LEFT = 80,
  163. SDL_SCANCODE_DOWN = 81,
  164. SDL_SCANCODE_UP = 82,
  165. SDL_SCANCODE_NUMLOCKCLEAR = 83,
  166. SDL_SCANCODE_KP_DIVIDE = 84,
  167. SDL_SCANCODE_KP_MULTIPLY = 85,
  168. SDL_SCANCODE_KP_MINUS = 86,
  169. SDL_SCANCODE_KP_PLUS = 87,
  170. SDL_SCANCODE_KP_ENTER = 88,
  171. SDL_SCANCODE_KP_1 = 89,
  172. SDL_SCANCODE_KP_2 = 90,
  173. SDL_SCANCODE_KP_3 = 91,
  174. SDL_SCANCODE_KP_4 = 92,
  175. SDL_SCANCODE_KP_5 = 93,
  176. SDL_SCANCODE_KP_6 = 94,
  177. SDL_SCANCODE_KP_7 = 95,
  178. SDL_SCANCODE_KP_8 = 96,
  179. SDL_SCANCODE_KP_9 = 97,
  180. SDL_SCANCODE_KP_0 = 98,
  181. SDL_SCANCODE_KP_PERIOD = 99,
  182. SDL_SCANCODE_NONUSBACKSLASH = 100,
  183. SDL_SCANCODE_APPLICATION = 101,
  184. SDL_SCANCODE_POWER = 102,
  185. SDL_SCANCODE_KP_EQUALS = 103,
  186. SDL_SCANCODE_F13 = 104,
  187. SDL_SCANCODE_F14 = 105,
  188. SDL_SCANCODE_F15 = 106,
  189. SDL_SCANCODE_F16 = 107,
  190. SDL_SCANCODE_F17 = 108,
  191. SDL_SCANCODE_F18 = 109,
  192. SDL_SCANCODE_F19 = 110,
  193. SDL_SCANCODE_F20 = 111,
  194. SDL_SCANCODE_F21 = 112,
  195. SDL_SCANCODE_F22 = 113,
  196. SDL_SCANCODE_F23 = 114,
  197. SDL_SCANCODE_F24 = 115,
  198. SDL_SCANCODE_EXECUTE = 116,
  199. SDL_SCANCODE_HELP = 117,
  200. SDL_SCANCODE_MENU = 118,
  201. SDL_SCANCODE_SELECT = 119,
  202. SDL_SCANCODE_STOP = 120,
  203. SDL_SCANCODE_AGAIN = 121,
  204. SDL_SCANCODE_UNDO = 122,
  205. SDL_SCANCODE_CUT = 123,
  206. SDL_SCANCODE_COPY = 124,
  207. SDL_SCANCODE_PASTE = 125,
  208. SDL_SCANCODE_FIND = 126,
  209. SDL_SCANCODE_MUTE = 127,
  210. SDL_SCANCODE_VOLUMEUP = 128,
  211. SDL_SCANCODE_VOLUMEDOWN = 129,
  212. /* not sure whether there's a reason to enable these */
  213. /* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */
  214. /* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */
  215. /* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */
  216. SDL_SCANCODE_KP_COMMA = 133,
  217. SDL_SCANCODE_KP_EQUALSAS400 = 134,
  218. SDL_SCANCODE_INTERNATIONAL1 = 135,
  219. SDL_SCANCODE_INTERNATIONAL2 = 136,
  220. SDL_SCANCODE_INTERNATIONAL3 = 137,
  221. SDL_SCANCODE_INTERNATIONAL4 = 138,
  222. SDL_SCANCODE_INTERNATIONAL5 = 139,
  223. SDL_SCANCODE_INTERNATIONAL6 = 140,
  224. SDL_SCANCODE_INTERNATIONAL7 = 141,
  225. SDL_SCANCODE_INTERNATIONAL8 = 142,
  226. SDL_SCANCODE_INTERNATIONAL9 = 143,
  227. SDL_SCANCODE_LANG1 = 144,
  228. SDL_SCANCODE_LANG2 = 145,
  229. SDL_SCANCODE_LANG3 = 146,
  230. SDL_SCANCODE_LANG4 = 147,
  231. SDL_SCANCODE_LANG5 = 148,
  232. SDL_SCANCODE_LANG6 = 149,
  233. SDL_SCANCODE_LANG7 = 150,
  234. SDL_SCANCODE_LANG8 = 151,
  235. SDL_SCANCODE_LANG9 = 152,
  236. SDL_SCANCODE_ALTERASE = 153,
  237. SDL_SCANCODE_SYSREQ = 154,
  238. SDL_SCANCODE_CANCEL = 155,
  239. SDL_SCANCODE_CLEAR = 156,
  240. SDL_SCANCODE_PRIOR = 157,
  241. SDL_SCANCODE_RETURN2 = 158,
  242. SDL_SCANCODE_SEPARATOR = 159,
  243. SDL_SCANCODE_OUT = 160,
  244. SDL_SCANCODE_OPER = 161,
  245. SDL_SCANCODE_CLEARAGAIN = 162,
  246. SDL_SCANCODE_CRSEL = 163,
  247. SDL_SCANCODE_EXSEL = 164,
  248. SDL_SCANCODE_KP_00 = 176,
  249. SDL_SCANCODE_KP_000 = 177,
  250. SDL_SCANCODE_THOUSANDSSEPARATOR = 178,
  251. SDL_SCANCODE_DECIMALSEPARATOR = 179,
  252. SDL_SCANCODE_CURRENCYUNIT = 180,
  253. SDL_SCANCODE_CURRENCYSUBUNIT = 181,
  254. SDL_SCANCODE_KP_LEFTPAREN = 182,
  255. SDL_SCANCODE_KP_RIGHTPAREN = 183,
  256. SDL_SCANCODE_KP_LEFTBRACE = 184,
  257. SDL_SCANCODE_KP_RIGHTBRACE = 185,
  258. SDL_SCANCODE_KP_TAB = 186,
  259. SDL_SCANCODE_KP_BACKSPACE = 187,
  260. SDL_SCANCODE_KP_A = 188,
  261. SDL_SCANCODE_KP_B = 189,
  262. SDL_SCANCODE_KP_C = 190,
  263. SDL_SCANCODE_KP_D = 191,
  264. SDL_SCANCODE_KP_E = 192,
  265. SDL_SCANCODE_KP_F = 193,
  266. SDL_SCANCODE_KP_XOR = 194,
  267. SDL_SCANCODE_KP_POWER = 195,
  268. SDL_SCANCODE_KP_PERCENT = 196,
  269. SDL_SCANCODE_KP_LESS = 197,
  270. SDL_SCANCODE_KP_GREATER = 198,
  271. SDL_SCANCODE_KP_AMPERSAND = 199,
  272. SDL_SCANCODE_KP_DBLAMPERSAND = 200,
  273. SDL_SCANCODE_KP_VERTICALBAR = 201,
  274. SDL_SCANCODE_KP_DBLVERTICALBAR = 202,
  275. SDL_SCANCODE_KP_COLON = 203,
  276. SDL_SCANCODE_KP_HASH = 204,
  277. SDL_SCANCODE_KP_SPACE = 205,
  278. SDL_SCANCODE_KP_AT = 206,
  279. SDL_SCANCODE_KP_EXCLAM = 207,
  280. SDL_SCANCODE_KP_MEMSTORE = 208,
  281. SDL_SCANCODE_KP_MEMRECALL = 209,
  282. SDL_SCANCODE_KP_MEMCLEAR = 210,
  283. SDL_SCANCODE_KP_MEMADD = 211,
  284. SDL_SCANCODE_KP_MEMSUBTRACT = 212,
  285. SDL_SCANCODE_KP_MEMMULTIPLY = 213,
  286. SDL_SCANCODE_KP_MEMDIVIDE = 214,
  287. SDL_SCANCODE_KP_PLUSMINUS = 215,
  288. SDL_SCANCODE_KP_CLEAR = 216,
  289. SDL_SCANCODE_KP_CLEARENTRY = 217,
  290. SDL_SCANCODE_KP_BINARY = 218,
  291. SDL_SCANCODE_KP_OCTAL = 219,
  292. SDL_SCANCODE_KP_DECIMAL = 220,
  293. SDL_SCANCODE_KP_HEXADECIMAL = 221,
  294. SDL_SCANCODE_LCTRL = 224,
  295. SDL_SCANCODE_LSHIFT = 225,
  296. SDL_SCANCODE_LALT = 226,
  297. SDL_SCANCODE_LGUI = 227,
  298. SDL_SCANCODE_RCTRL = 228,
  299. SDL_SCANCODE_RSHIFT = 229,
  300. SDL_SCANCODE_RALT = 230,
  301. SDL_SCANCODE_RGUI = 231,
  302. SDL_SCANCODE_MODE = 257,
  303. /* These come from the USB consumer page (0x0C) */
  304. SDL_SCANCODE_AUDIONEXT = 258,
  305. SDL_SCANCODE_AUDIOPREV = 259,
  306. SDL_SCANCODE_AUDIOSTOP = 260,
  307. SDL_SCANCODE_AUDIOPLAY = 261,
  308. SDL_SCANCODE_AUDIOMUTE = 262,
  309. SDL_SCANCODE_MEDIASELECT = 263,
  310. SDL_SCANCODE_WWW = 264,
  311. SDL_SCANCODE_MAIL = 265,
  312. SDL_SCANCODE_CALCULATOR = 266,
  313. SDL_SCANCODE_COMPUTER = 267,
  314. SDL_SCANCODE_AC_SEARCH = 268,
  315. SDL_SCANCODE_AC_HOME = 269,
  316. SDL_SCANCODE_AC_BACK = 270,
  317. SDL_SCANCODE_AC_FORWARD = 271,
  318. SDL_SCANCODE_AC_STOP = 272,
  319. SDL_SCANCODE_AC_REFRESH = 273,
  320. SDL_SCANCODE_AC_BOOKMARKS = 274,
  321. /* These come from other sources, and are mostly mac related */
  322. SDL_SCANCODE_BRIGHTNESSDOWN = 275,
  323. SDL_SCANCODE_BRIGHTNESSUP = 276,
  324. SDL_SCANCODE_DISPLAYSWITCH = 277,
  325. SDL_SCANCODE_KBDILLUMTOGGLE = 278,
  326. SDL_SCANCODE_KBDILLUMDOWN = 279,
  327. SDL_SCANCODE_KBDILLUMUP = 280,
  328. SDL_SCANCODE_EJECT = 281,
  329. SDL_SCANCODE_SLEEP = 282,
  330. SDL_SCANCODE_APP1 = 283,
  331. SDL_SCANCODE_APP2 = 284,
  332. /* This is not a key, simply marks the number of scancodes
  333. * so that you know how big to make your arrays. */
  334. SDL_NUM_SCANCODES = 512
  335. }
  336. public const int SDLK_SCANCODE_MASK = (1 << 30);
  337. public enum SDL_Keycode
  338. {
  339. SDLK_UNKNOWN = 0,
  340. SDLK_RETURN = '\r',
  341. SDLK_ESCAPE = 27,
  342. // '\033'
  343. SDLK_BACKSPACE = '\b',
  344. SDLK_TAB = '\t',
  345. SDLK_SPACE = ' ',
  346. SDLK_EXCLAIM = '!',
  347. SDLK_QUOTEDBL = '"',
  348. SDLK_HASH = '#',
  349. SDLK_PERCENT = '%',
  350. SDLK_DOLLAR = '$',
  351. SDLK_AMPERSAND = '&',
  352. SDLK_QUOTE = '\'',
  353. SDLK_LEFTPAREN = '(',
  354. SDLK_RIGHTPAREN = ')',
  355. SDLK_ASTERISK = '*',
  356. SDLK_PLUS = '+',
  357. SDLK_COMMA = ',',
  358. SDLK_MINUS = '-',
  359. SDLK_PERIOD = '.',
  360. SDLK_SLASH = '/',
  361. SDLK_0 = '0',
  362. SDLK_1 = '1',
  363. SDLK_2 = '2',
  364. SDLK_3 = '3',
  365. SDLK_4 = '4',
  366. SDLK_5 = '5',
  367. SDLK_6 = '6',
  368. SDLK_7 = '7',
  369. SDLK_8 = '8',
  370. SDLK_9 = '9',
  371. SDLK_COLON = ':',
  372. SDLK_SEMICOLON = ';',
  373. SDLK_LESS = '<',
  374. SDLK_EQUALS = '=',
  375. SDLK_GREATER = '>',
  376. SDLK_QUESTION = '?',
  377. SDLK_AT = '@',
  378. /*
  379. Skip uppercase letters
  380. */
  381. SDLK_LEFTBRACKET = '[',
  382. SDLK_BACKSLASH = '\\',
  383. SDLK_RIGHTBRACKET = ']',
  384. SDLK_CARET = '^',
  385. SDLK_UNDERSCORE = '_',
  386. SDLK_BACKQUOTE = '`',
  387. SDLK_a = 'a',
  388. SDLK_b = 'b',
  389. SDLK_c = 'c',
  390. SDLK_d = 'd',
  391. SDLK_e = 'e',
  392. SDLK_f = 'f',
  393. SDLK_g = 'g',
  394. SDLK_h = 'h',
  395. SDLK_i = 'i',
  396. SDLK_j = 'j',
  397. SDLK_k = 'k',
  398. SDLK_l = 'l',
  399. SDLK_m = 'm',
  400. SDLK_n = 'n',
  401. SDLK_o = 'o',
  402. SDLK_p = 'p',
  403. SDLK_q = 'q',
  404. SDLK_r = 'r',
  405. SDLK_s = 's',
  406. SDLK_t = 't',
  407. SDLK_u = 'u',
  408. SDLK_v = 'v',
  409. SDLK_w = 'w',
  410. SDLK_x = 'x',
  411. SDLK_y = 'y',
  412. SDLK_z = 'z',
  413. SDLK_CAPSLOCK = (int)SDL_Scancode.SDL_SCANCODE_CAPSLOCK | SDLK_SCANCODE_MASK,
  414. SDLK_F1 = (int)SDL_Scancode.SDL_SCANCODE_F1 | SDLK_SCANCODE_MASK,
  415. SDLK_F2 = (int)SDL_Scancode.SDL_SCANCODE_F2 | SDLK_SCANCODE_MASK,
  416. SDLK_F3 = (int)SDL_Scancode.SDL_SCANCODE_F3 | SDLK_SCANCODE_MASK,
  417. SDLK_F4 = (int)SDL_Scancode.SDL_SCANCODE_F4 | SDLK_SCANCODE_MASK,
  418. SDLK_F5 = (int)SDL_Scancode.SDL_SCANCODE_F5 | SDLK_SCANCODE_MASK,
  419. SDLK_F6 = (int)SDL_Scancode.SDL_SCANCODE_F6 | SDLK_SCANCODE_MASK,
  420. SDLK_F7 = (int)SDL_Scancode.SDL_SCANCODE_F7 | SDLK_SCANCODE_MASK,
  421. SDLK_F8 = (int)SDL_Scancode.SDL_SCANCODE_F8 | SDLK_SCANCODE_MASK,
  422. SDLK_F9 = (int)SDL_Scancode.SDL_SCANCODE_F9 | SDLK_SCANCODE_MASK,
  423. SDLK_F10 = (int)SDL_Scancode.SDL_SCANCODE_F10 | SDLK_SCANCODE_MASK,
  424. SDLK_F11 = (int)SDL_Scancode.SDL_SCANCODE_F11 | SDLK_SCANCODE_MASK,
  425. SDLK_F12 = (int)SDL_Scancode.SDL_SCANCODE_F12 | SDLK_SCANCODE_MASK,
  426. SDLK_PRINTSCREEN = (int)SDL_Scancode.SDL_SCANCODE_PRINTSCREEN | SDLK_SCANCODE_MASK,
  427. SDLK_SCROLLLOCK = (int)SDL_Scancode.SDL_SCANCODE_SCROLLLOCK | SDLK_SCANCODE_MASK,
  428. SDLK_PAUSE = (int)SDL_Scancode.SDL_SCANCODE_PAUSE | SDLK_SCANCODE_MASK,
  429. SDLK_INSERT = (int)SDL_Scancode.SDL_SCANCODE_INSERT | SDLK_SCANCODE_MASK,
  430. SDLK_HOME = (int)SDL_Scancode.SDL_SCANCODE_HOME | SDLK_SCANCODE_MASK,
  431. SDLK_PAGEUP = (int)SDL_Scancode.SDL_SCANCODE_PAGEUP | SDLK_SCANCODE_MASK,
  432. SDLK_DELETE = 127,
  433. SDLK_END = (int)SDL_Scancode.SDL_SCANCODE_END | SDLK_SCANCODE_MASK,
  434. SDLK_PAGEDOWN = (int)SDL_Scancode.SDL_SCANCODE_PAGEDOWN | SDLK_SCANCODE_MASK,
  435. SDLK_RIGHT = (int)SDL_Scancode.SDL_SCANCODE_RIGHT | SDLK_SCANCODE_MASK,
  436. SDLK_LEFT = (int)SDL_Scancode.SDL_SCANCODE_LEFT | SDLK_SCANCODE_MASK,
  437. SDLK_DOWN = (int)SDL_Scancode.SDL_SCANCODE_DOWN | SDLK_SCANCODE_MASK,
  438. SDLK_UP = (int)SDL_Scancode.SDL_SCANCODE_UP | SDLK_SCANCODE_MASK,
  439. SDLK_NUMLOCKCLEAR = (int)SDL_Scancode.SDL_SCANCODE_NUMLOCKCLEAR | SDLK_SCANCODE_MASK,
  440. SDLK_KP_DIVIDE = (int)SDL_Scancode.SDL_SCANCODE_KP_DIVIDE | SDLK_SCANCODE_MASK,
  441. SDLK_KP_MULTIPLY = (int)SDL_Scancode.SDL_SCANCODE_KP_MULTIPLY | SDLK_SCANCODE_MASK,
  442. SDLK_KP_MINUS = (int)SDL_Scancode.SDL_SCANCODE_KP_MINUS | SDLK_SCANCODE_MASK,
  443. SDLK_KP_PLUS = (int)SDL_Scancode.SDL_SCANCODE_KP_PLUS | SDLK_SCANCODE_MASK,
  444. SDLK_KP_ENTER = (int)SDL_Scancode.SDL_SCANCODE_KP_ENTER | SDLK_SCANCODE_MASK,
  445. SDLK_KP_1 = (int)SDL_Scancode.SDL_SCANCODE_KP_1 | SDLK_SCANCODE_MASK,
  446. SDLK_KP_2 = (int)SDL_Scancode.SDL_SCANCODE_KP_2 | SDLK_SCANCODE_MASK,
  447. SDLK_KP_3 = (int)SDL_Scancode.SDL_SCANCODE_KP_3 | SDLK_SCANCODE_MASK,
  448. SDLK_KP_4 = (int)SDL_Scancode.SDL_SCANCODE_KP_4 | SDLK_SCANCODE_MASK,
  449. SDLK_KP_5 = (int)SDL_Scancode.SDL_SCANCODE_KP_5 | SDLK_SCANCODE_MASK,
  450. SDLK_KP_6 = (int)SDL_Scancode.SDL_SCANCODE_KP_6 | SDLK_SCANCODE_MASK,
  451. SDLK_KP_7 = (int)SDL_Scancode.SDL_SCANCODE_KP_7 | SDLK_SCANCODE_MASK,
  452. SDLK_KP_8 = (int)SDL_Scancode.SDL_SCANCODE_KP_8 | SDLK_SCANCODE_MASK,
  453. SDLK_KP_9 = (int)SDL_Scancode.SDL_SCANCODE_KP_9 | SDLK_SCANCODE_MASK,
  454. SDLK_KP_0 = (int)SDL_Scancode.SDL_SCANCODE_KP_0 | SDLK_SCANCODE_MASK,
  455. SDLK_KP_PERIOD = (int)SDL_Scancode.SDL_SCANCODE_KP_PERIOD | SDLK_SCANCODE_MASK,
  456. SDLK_APPLICATION = (int)SDL_Scancode.SDL_SCANCODE_APPLICATION | SDLK_SCANCODE_MASK,
  457. SDLK_POWER = (int)SDL_Scancode.SDL_SCANCODE_POWER | SDLK_SCANCODE_MASK,
  458. SDLK_KP_EQUALS = (int)SDL_Scancode.SDL_SCANCODE_KP_EQUALS | SDLK_SCANCODE_MASK,
  459. SDLK_F13 = (int)SDL_Scancode.SDL_SCANCODE_F13 | SDLK_SCANCODE_MASK,
  460. SDLK_F14 = (int)SDL_Scancode.SDL_SCANCODE_F14 | SDLK_SCANCODE_MASK,
  461. SDLK_F15 = (int)SDL_Scancode.SDL_SCANCODE_F15 | SDLK_SCANCODE_MASK,
  462. SDLK_F16 = (int)SDL_Scancode.SDL_SCANCODE_F16 | SDLK_SCANCODE_MASK,
  463. SDLK_F17 = (int)SDL_Scancode.SDL_SCANCODE_F17 | SDLK_SCANCODE_MASK,
  464. SDLK_F18 = (int)SDL_Scancode.SDL_SCANCODE_F18 | SDLK_SCANCODE_MASK,
  465. SDLK_F19 = (int)SDL_Scancode.SDL_SCANCODE_F19 | SDLK_SCANCODE_MASK,
  466. SDLK_F20 = (int)SDL_Scancode.SDL_SCANCODE_F20 | SDLK_SCANCODE_MASK,
  467. SDLK_F21 = (int)SDL_Scancode.SDL_SCANCODE_F21 | SDLK_SCANCODE_MASK,
  468. SDLK_F22 = (int)SDL_Scancode.SDL_SCANCODE_F22 | SDLK_SCANCODE_MASK,
  469. SDLK_F23 = (int)SDL_Scancode.SDL_SCANCODE_F23 | SDLK_SCANCODE_MASK,
  470. SDLK_F24 = (int)SDL_Scancode.SDL_SCANCODE_F24 | SDLK_SCANCODE_MASK,
  471. SDLK_EXECUTE = (int)SDL_Scancode.SDL_SCANCODE_EXECUTE | SDLK_SCANCODE_MASK,
  472. SDLK_HELP = (int)SDL_Scancode.SDL_SCANCODE_HELP | SDLK_SCANCODE_MASK,
  473. SDLK_MENU = (int)SDL_Scancode.SDL_SCANCODE_MENU | SDLK_SCANCODE_MASK,
  474. SDLK_SELECT = (int)SDL_Scancode.SDL_SCANCODE_SELECT | SDLK_SCANCODE_MASK,
  475. SDLK_STOP = (int)SDL_Scancode.SDL_SCANCODE_STOP | SDLK_SCANCODE_MASK,
  476. SDLK_AGAIN = (int)SDL_Scancode.SDL_SCANCODE_AGAIN | SDLK_SCANCODE_MASK,
  477. SDLK_UNDO = (int)SDL_Scancode.SDL_SCANCODE_UNDO | SDLK_SCANCODE_MASK,
  478. SDLK_CUT = (int)SDL_Scancode.SDL_SCANCODE_CUT | SDLK_SCANCODE_MASK,
  479. SDLK_COPY = (int)SDL_Scancode.SDL_SCANCODE_COPY | SDLK_SCANCODE_MASK,
  480. SDLK_PASTE = (int)SDL_Scancode.SDL_SCANCODE_PASTE | SDLK_SCANCODE_MASK,
  481. SDLK_FIND = (int)SDL_Scancode.SDL_SCANCODE_FIND | SDLK_SCANCODE_MASK,
  482. SDLK_MUTE = (int)SDL_Scancode.SDL_SCANCODE_MUTE | SDLK_SCANCODE_MASK,
  483. SDLK_VOLUMEUP = (int)SDL_Scancode.SDL_SCANCODE_VOLUMEUP | SDLK_SCANCODE_MASK,
  484. SDLK_VOLUMEDOWN = (int)SDL_Scancode.SDL_SCANCODE_VOLUMEDOWN | SDLK_SCANCODE_MASK,
  485. SDLK_KP_COMMA = (int)SDL_Scancode.SDL_SCANCODE_KP_COMMA | SDLK_SCANCODE_MASK,
  486. SDLK_KP_EQUALSAS400 =
  487. (int)SDL_Scancode.SDL_SCANCODE_KP_EQUALSAS400 | SDLK_SCANCODE_MASK,
  488. SDLK_ALTERASE = (int)SDL_Scancode.SDL_SCANCODE_ALTERASE | SDLK_SCANCODE_MASK,
  489. SDLK_SYSREQ = (int)SDL_Scancode.SDL_SCANCODE_SYSREQ | SDLK_SCANCODE_MASK,
  490. SDLK_CANCEL = (int)SDL_Scancode.SDL_SCANCODE_CANCEL | SDLK_SCANCODE_MASK,
  491. SDLK_CLEAR = (int)SDL_Scancode.SDL_SCANCODE_CLEAR | SDLK_SCANCODE_MASK,
  492. SDLK_PRIOR = (int)SDL_Scancode.SDL_SCANCODE_PRIOR | SDLK_SCANCODE_MASK,
  493. SDLK_RETURN2 = (int)SDL_Scancode.SDL_SCANCODE_RETURN2 | SDLK_SCANCODE_MASK,
  494. SDLK_SEPARATOR = (int)SDL_Scancode.SDL_SCANCODE_SEPARATOR | SDLK_SCANCODE_MASK,
  495. SDLK_OUT = (int)SDL_Scancode.SDL_SCANCODE_OUT | SDLK_SCANCODE_MASK,
  496. SDLK_OPER = (int)SDL_Scancode.SDL_SCANCODE_OPER | SDLK_SCANCODE_MASK,
  497. SDLK_CLEARAGAIN = (int)SDL_Scancode.SDL_SCANCODE_CLEARAGAIN | SDLK_SCANCODE_MASK,
  498. SDLK_CRSEL = (int)SDL_Scancode.SDL_SCANCODE_CRSEL | SDLK_SCANCODE_MASK,
  499. SDLK_EXSEL = (int)SDL_Scancode.SDL_SCANCODE_EXSEL | SDLK_SCANCODE_MASK,
  500. SDLK_KP_00 = (int)SDL_Scancode.SDL_SCANCODE_KP_00 | SDLK_SCANCODE_MASK,
  501. SDLK_KP_000 = (int)SDL_Scancode.SDL_SCANCODE_KP_000 | SDLK_SCANCODE_MASK,
  502. SDLK_THOUSANDSSEPARATOR =
  503. (int)SDL_Scancode.SDL_SCANCODE_THOUSANDSSEPARATOR | SDLK_SCANCODE_MASK,
  504. SDLK_DECIMALSEPARATOR =
  505. (int)SDL_Scancode.SDL_SCANCODE_DECIMALSEPARATOR | SDLK_SCANCODE_MASK,
  506. SDLK_CURRENCYUNIT = (int)SDL_Scancode.SDL_SCANCODE_CURRENCYUNIT | SDLK_SCANCODE_MASK,
  507. SDLK_CURRENCYSUBUNIT =
  508. (int)SDL_Scancode.SDL_SCANCODE_CURRENCYSUBUNIT | SDLK_SCANCODE_MASK,
  509. SDLK_KP_LEFTPAREN = (int)SDL_Scancode.SDL_SCANCODE_KP_LEFTPAREN | SDLK_SCANCODE_MASK,
  510. SDLK_KP_RIGHTPAREN = (int)SDL_Scancode.SDL_SCANCODE_KP_RIGHTPAREN | SDLK_SCANCODE_MASK,
  511. SDLK_KP_LEFTBRACE = (int)SDL_Scancode.SDL_SCANCODE_KP_LEFTBRACE | SDLK_SCANCODE_MASK,
  512. SDLK_KP_RIGHTBRACE = (int)SDL_Scancode.SDL_SCANCODE_KP_RIGHTBRACE | SDLK_SCANCODE_MASK,
  513. SDLK_KP_TAB = (int)SDL_Scancode.SDL_SCANCODE_KP_TAB | SDLK_SCANCODE_MASK,
  514. SDLK_KP_BACKSPACE = (int)SDL_Scancode.SDL_SCANCODE_KP_BACKSPACE | SDLK_SCANCODE_MASK,
  515. SDLK_KP_A = (int)SDL_Scancode.SDL_SCANCODE_KP_A | SDLK_SCANCODE_MASK,
  516. SDLK_KP_B = (int)SDL_Scancode.SDL_SCANCODE_KP_B | SDLK_SCANCODE_MASK,
  517. SDLK_KP_C = (int)SDL_Scancode.SDL_SCANCODE_KP_C | SDLK_SCANCODE_MASK,
  518. SDLK_KP_D = (int)SDL_Scancode.SDL_SCANCODE_KP_D | SDLK_SCANCODE_MASK,
  519. SDLK_KP_E = (int)SDL_Scancode.SDL_SCANCODE_KP_E | SDLK_SCANCODE_MASK,
  520. SDLK_KP_F = (int)SDL_Scancode.SDL_SCANCODE_KP_F | SDLK_SCANCODE_MASK,
  521. SDLK_KP_XOR = (int)SDL_Scancode.SDL_SCANCODE_KP_XOR | SDLK_SCANCODE_MASK,
  522. SDLK_KP_POWER = (int)SDL_Scancode.SDL_SCANCODE_KP_POWER | SDLK_SCANCODE_MASK,
  523. SDLK_KP_PERCENT = (int)SDL_Scancode.SDL_SCANCODE_KP_PERCENT | SDLK_SCANCODE_MASK,
  524. SDLK_KP_LESS = (int)SDL_Scancode.SDL_SCANCODE_KP_LESS | SDLK_SCANCODE_MASK,
  525. SDLK_KP_GREATER = (int)SDL_Scancode.SDL_SCANCODE_KP_GREATER | SDLK_SCANCODE_MASK,
  526. SDLK_KP_AMPERSAND = (int)SDL_Scancode.SDL_SCANCODE_KP_AMPERSAND | SDLK_SCANCODE_MASK,
  527. SDLK_KP_DBLAMPERSAND =
  528. (int)SDL_Scancode.SDL_SCANCODE_KP_DBLAMPERSAND | SDLK_SCANCODE_MASK,
  529. SDLK_KP_VERTICALBAR =
  530. (int)SDL_Scancode.SDL_SCANCODE_KP_VERTICALBAR | SDLK_SCANCODE_MASK,
  531. SDLK_KP_DBLVERTICALBAR =
  532. (int)SDL_Scancode.SDL_SCANCODE_KP_DBLVERTICALBAR | SDLK_SCANCODE_MASK,
  533. SDLK_KP_COLON = (int)SDL_Scancode.SDL_SCANCODE_KP_COLON | SDLK_SCANCODE_MASK,
  534. SDLK_KP_HASH = (int)SDL_Scancode.SDL_SCANCODE_KP_HASH | SDLK_SCANCODE_MASK,
  535. SDLK_KP_SPACE = (int)SDL_Scancode.SDL_SCANCODE_KP_SPACE | SDLK_SCANCODE_MASK,
  536. SDLK_KP_AT = (int)SDL_Scancode.SDL_SCANCODE_KP_AT | SDLK_SCANCODE_MASK,
  537. SDLK_KP_EXCLAM = (int)SDL_Scancode.SDL_SCANCODE_KP_EXCLAM | SDLK_SCANCODE_MASK,
  538. SDLK_KP_MEMSTORE = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMSTORE | SDLK_SCANCODE_MASK,
  539. SDLK_KP_MEMRECALL = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMRECALL | SDLK_SCANCODE_MASK,
  540. SDLK_KP_MEMCLEAR = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMCLEAR | SDLK_SCANCODE_MASK,
  541. SDLK_KP_MEMADD = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMADD | SDLK_SCANCODE_MASK,
  542. SDLK_KP_MEMSUBTRACT =
  543. (int)SDL_Scancode.SDL_SCANCODE_KP_MEMSUBTRACT | SDLK_SCANCODE_MASK,
  544. SDLK_KP_MEMMULTIPLY =
  545. (int)SDL_Scancode.SDL_SCANCODE_KP_MEMMULTIPLY | SDLK_SCANCODE_MASK,
  546. SDLK_KP_MEMDIVIDE = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMDIVIDE | SDLK_SCANCODE_MASK,
  547. SDLK_KP_PLUSMINUS = (int)SDL_Scancode.SDL_SCANCODE_KP_PLUSMINUS | SDLK_SCANCODE_MASK,
  548. SDLK_KP_CLEAR = (int)SDL_Scancode.SDL_SCANCODE_KP_CLEAR | SDLK_SCANCODE_MASK,
  549. SDLK_KP_CLEARENTRY = (int)SDL_Scancode.SDL_SCANCODE_KP_CLEARENTRY | SDLK_SCANCODE_MASK,
  550. SDLK_KP_BINARY = (int)SDL_Scancode.SDL_SCANCODE_KP_BINARY | SDLK_SCANCODE_MASK,
  551. SDLK_KP_OCTAL = (int)SDL_Scancode.SDL_SCANCODE_KP_OCTAL | SDLK_SCANCODE_MASK,
  552. SDLK_KP_DECIMAL = (int)SDL_Scancode.SDL_SCANCODE_KP_DECIMAL | SDLK_SCANCODE_MASK,
  553. SDLK_KP_HEXADECIMAL =
  554. (int)SDL_Scancode.SDL_SCANCODE_KP_HEXADECIMAL | SDLK_SCANCODE_MASK,
  555. SDLK_LCTRL = (int)SDL_Scancode.SDL_SCANCODE_LCTRL | SDLK_SCANCODE_MASK,
  556. SDLK_LSHIFT = (int)SDL_Scancode.SDL_SCANCODE_LSHIFT | SDLK_SCANCODE_MASK,
  557. SDLK_LALT = (int)SDL_Scancode.SDL_SCANCODE_LALT | SDLK_SCANCODE_MASK,
  558. SDLK_LGUI = (int)SDL_Scancode.SDL_SCANCODE_LGUI | SDLK_SCANCODE_MASK,
  559. SDLK_RCTRL = (int)SDL_Scancode.SDL_SCANCODE_RCTRL | SDLK_SCANCODE_MASK,
  560. SDLK_RSHIFT = (int)SDL_Scancode.SDL_SCANCODE_RSHIFT | SDLK_SCANCODE_MASK,
  561. SDLK_RALT = (int)SDL_Scancode.SDL_SCANCODE_RALT | SDLK_SCANCODE_MASK,
  562. SDLK_RGUI = (int)SDL_Scancode.SDL_SCANCODE_RGUI | SDLK_SCANCODE_MASK,
  563. SDLK_MODE = (int)SDL_Scancode.SDL_SCANCODE_MODE | SDLK_SCANCODE_MASK,
  564. SDLK_AUDIONEXT = (int)SDL_Scancode.SDL_SCANCODE_AUDIONEXT | SDLK_SCANCODE_MASK,
  565. SDLK_AUDIOPREV = (int)SDL_Scancode.SDL_SCANCODE_AUDIOPREV | SDLK_SCANCODE_MASK,
  566. SDLK_AUDIOSTOP = (int)SDL_Scancode.SDL_SCANCODE_AUDIOSTOP | SDLK_SCANCODE_MASK,
  567. SDLK_AUDIOPLAY = (int)SDL_Scancode.SDL_SCANCODE_AUDIOPLAY | SDLK_SCANCODE_MASK,
  568. SDLK_AUDIOMUTE = (int)SDL_Scancode.SDL_SCANCODE_AUDIOMUTE | SDLK_SCANCODE_MASK,
  569. SDLK_MEDIASELECT = (int)SDL_Scancode.SDL_SCANCODE_MEDIASELECT | SDLK_SCANCODE_MASK,
  570. SDLK_WWW = (int)SDL_Scancode.SDL_SCANCODE_WWW | SDLK_SCANCODE_MASK,
  571. SDLK_MAIL = (int)SDL_Scancode.SDL_SCANCODE_MAIL | SDLK_SCANCODE_MASK,
  572. SDLK_CALCULATOR = (int)SDL_Scancode.SDL_SCANCODE_CALCULATOR | SDLK_SCANCODE_MASK,
  573. SDLK_COMPUTER = (int)SDL_Scancode.SDL_SCANCODE_COMPUTER | SDLK_SCANCODE_MASK,
  574. SDLK_AC_SEARCH = (int)SDL_Scancode.SDL_SCANCODE_AC_SEARCH | SDLK_SCANCODE_MASK,
  575. SDLK_AC_HOME = (int)SDL_Scancode.SDL_SCANCODE_AC_HOME | SDLK_SCANCODE_MASK,
  576. SDLK_AC_BACK = (int)SDL_Scancode.SDL_SCANCODE_AC_BACK | SDLK_SCANCODE_MASK,
  577. SDLK_AC_FORWARD = (int)SDL_Scancode.SDL_SCANCODE_AC_FORWARD | SDLK_SCANCODE_MASK,
  578. SDLK_AC_STOP = (int)SDL_Scancode.SDL_SCANCODE_AC_STOP | SDLK_SCANCODE_MASK,
  579. SDLK_AC_REFRESH = (int)SDL_Scancode.SDL_SCANCODE_AC_REFRESH | SDLK_SCANCODE_MASK,
  580. SDLK_AC_BOOKMARKS = (int)SDL_Scancode.SDL_SCANCODE_AC_BOOKMARKS | SDLK_SCANCODE_MASK,
  581. SDLK_BRIGHTNESSDOWN =
  582. (int)SDL_Scancode.SDL_SCANCODE_BRIGHTNESSDOWN | SDLK_SCANCODE_MASK,
  583. SDLK_BRIGHTNESSUP = (int)SDL_Scancode.SDL_SCANCODE_BRIGHTNESSUP | SDLK_SCANCODE_MASK,
  584. SDLK_DISPLAYSWITCH = (int)SDL_Scancode.SDL_SCANCODE_DISPLAYSWITCH | SDLK_SCANCODE_MASK,
  585. SDLK_KBDILLUMTOGGLE =
  586. (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMTOGGLE | SDLK_SCANCODE_MASK,
  587. SDLK_KBDILLUMDOWN = (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMDOWN | SDLK_SCANCODE_MASK,
  588. SDLK_KBDILLUMUP = (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMUP | SDLK_SCANCODE_MASK,
  589. SDLK_EJECT = (int)SDL_Scancode.SDL_SCANCODE_EJECT | SDLK_SCANCODE_MASK,
  590. SDLK_SLEEP = (int)SDL_Scancode.SDL_SCANCODE_SLEEP | SDLK_SCANCODE_MASK
  591. }
  592. }
  593. }