// Generated from the ncurses Caps file (MIT/X11 license), which is
// the source of truth for term.h. The order of each table defines
// the binary index of the capability in a compiled terminfo file
// and is fixed for SVr4 binary compatibility; never reorder.
//
// Reference: https://github.com/ThomasDickey/ncurses-snapshots/blob/master/include/Caps
// Regenerated 2026-09-21 by scripts/gen_caps.py
// (44 bools, 39 nums, 414 strs)

///|
/// Standard Boolean capability names, in BoolCodes order.
pub let bool_names : Array[String] = [
  "auto_left_margin", "auto_right_margin", "no_esc_ctlc", "ceol_standout_glitch",
  "eat_newline_glitch", "erase_overstrike", "generic_type", "hard_copy", "has_meta_key",
  "has_status_line", "insert_null_glitch", "memory_above", "memory_below", "move_insert_mode",
  "move_standout_mode", "over_strike", "status_line_esc_ok", "dest_tabs_magic_smso",
  "tilde_glitch", "transparent_underline", "xon_xoff", "needs_xon_xoff", "prtr_silent",
  "hard_cursor", "non_rev_rmcup", "no_pad_char", "non_dest_scroll_region", "can_change",
  "back_color_erase", "hue_lightness_saturation", "col_addr_glitch", "cr_cancels_micro_mode",
  "has_print_wheel", "row_addr_glitch", "semi_auto_right_margin", "cpi_changes_res",
  "lpi_changes_res", "backspaces_with_bs", "crt_no_scrolling", "no_correctly_working_cr",
  "gnu_has_meta_key", "linefeed_is_newline", "has_hardware_tabs", "return_does_clr_eol",
]

///|
/// Name -> binary index lookup for boolean capabilities.
pub let bool_index : Map[String, Int] = {
  "auto_left_margin": 0,
  "auto_right_margin": 1,
  "no_esc_ctlc": 2,
  "ceol_standout_glitch": 3,
  "eat_newline_glitch": 4,
  "erase_overstrike": 5,
  "generic_type": 6,
  "hard_copy": 7,
  "has_meta_key": 8,
  "has_status_line": 9,
  "insert_null_glitch": 10,
  "memory_above": 11,
  "memory_below": 12,
  "move_insert_mode": 13,
  "move_standout_mode": 14,
  "over_strike": 15,
  "status_line_esc_ok": 16,
  "dest_tabs_magic_smso": 17,
  "tilde_glitch": 18,
  "transparent_underline": 19,
  "xon_xoff": 20,
  "needs_xon_xoff": 21,
  "prtr_silent": 22,
  "hard_cursor": 23,
  "non_rev_rmcup": 24,
  "no_pad_char": 25,
  "non_dest_scroll_region": 26,
  "can_change": 27,
  "back_color_erase": 28,
  "hue_lightness_saturation": 29,
  "col_addr_glitch": 30,
  "cr_cancels_micro_mode": 31,
  "has_print_wheel": 32,
  "row_addr_glitch": 33,
  "semi_auto_right_margin": 34,
  "cpi_changes_res": 35,
  "lpi_changes_res": 36,
  "backspaces_with_bs": 37,
  "crt_no_scrolling": 38,
  "no_correctly_working_cr": 39,
  "gnu_has_meta_key": 40,
  "linefeed_is_newline": 41,
  "has_hardware_tabs": 42,
  "return_does_clr_eol": 43,
}

///|
/// Alternate names -> binary index lookup: the two-character
/// terminfo code and the termcap name of each capability
/// (e.g. `cols`/`co` for `columns`). Source entries may use any
/// of the three spellings.
pub let bool_code_index : Map[String, Int] = {
  "bw": 0,
  "am": 1,
  "xsb": 2,
  "xb": 2,
  "xhp": 3,
  "xs": 3,
  "xenl": 4,
  "xn": 4,
  "eo": 5,
  "gn": 6,
  "hc": 7,
  "km": 8,
  "hs": 9,
  "in": 10,
  "da": 11,
  "db": 12,
  "mir": 13,
  "mi": 13,
  "msgr": 14,
  "ms": 14,
  "os": 15,
  "eslok": 16,
  "es": 16,
  "xt": 17,
  "hz": 18,
  "ul": 19,
  "xon": 20,
  "xo": 20,
  "nxon": 21,
  "nx": 21,
  "mc5i": 22,
  "5i": 22,
  "chts": 23,
  "HC": 23,
  "nrrmc": 24,
  "NR": 24,
  "npc": 25,
  "NP": 25,
  "ndscr": 26,
  "ND": 26,
  "ccc": 27,
  "cc": 27,
  "bce": 28,
  "ut": 28,
  "hls": 29,
  "hl": 29,
  "xhpa": 30,
  "YA": 30,
  "crxm": 31,
  "YB": 31,
  "daisy": 32,
  "YC": 32,
  "xvpa": 33,
  "YD": 33,
  "sam": 34,
  "YE": 34,
  "cpix": 35,
  "YF": 35,
  "lpix": 36,
  "YG": 36,
  "OTbs": 37,
  "bs": 37,
  "OTns": 38,
  "ns": 38,
  "OTnc": 39,
  "nc": 39,
  "OTMT": 40,
  "MT": 40,
  "OTNL": 41,
  "NL": 41,
  "OTpt": 42,
  "pt": 42,
  "OTxr": 43,
  "xr": 43,
}

///|
/// Standard Numeric capability names, in NumCodes order.
pub let num_names : Array[String] = [
  "columns", "init_tabs", "lines", "lines_of_memory", "magic_cookie_glitch", "padding_baud_rate",
  "virtual_terminal", "width_status_line", "num_labels", "label_height", "label_width",
  "max_attributes", "maximum_windows", "max_colors", "max_pairs", "no_color_video",
  "buffer_capacity", "dot_vert_spacing", "dot_horz_spacing", "max_micro_address",
  "max_micro_jump", "micro_col_size", "micro_line_size", "number_of_pins", "output_res_char",
  "output_res_line", "output_res_horz_inch", "output_res_vert_inch", "print_rate",
  "wide_char_size", "buttons", "bit_image_entwining", "bit_image_type", "magic_cookie_glitch_ul",
  "carriage_return_delay", "new_line_delay", "backspace_delay", "horizontal_tab_delay",
  "number_of_function_keys",
]

///|
/// Name -> binary index lookup for numeric capabilities.
pub let num_index : Map[String, Int] = {
  "columns": 0,
  "init_tabs": 1,
  "lines": 2,
  "lines_of_memory": 3,
  "magic_cookie_glitch": 4,
  "padding_baud_rate": 5,
  "virtual_terminal": 6,
  "width_status_line": 7,
  "num_labels": 8,
  "label_height": 9,
  "label_width": 10,
  "max_attributes": 11,
  "maximum_windows": 12,
  "max_colors": 13,
  "max_pairs": 14,
  "no_color_video": 15,
  "buffer_capacity": 16,
  "dot_vert_spacing": 17,
  "dot_horz_spacing": 18,
  "max_micro_address": 19,
  "max_micro_jump": 20,
  "micro_col_size": 21,
  "micro_line_size": 22,
  "number_of_pins": 23,
  "output_res_char": 24,
  "output_res_line": 25,
  "output_res_horz_inch": 26,
  "output_res_vert_inch": 27,
  "print_rate": 28,
  "wide_char_size": 29,
  "buttons": 30,
  "bit_image_entwining": 31,
  "bit_image_type": 32,
  "magic_cookie_glitch_ul": 33,
  "carriage_return_delay": 34,
  "new_line_delay": 35,
  "backspace_delay": 36,
  "horizontal_tab_delay": 37,
  "number_of_function_keys": 38,
}

///|
/// Alternate names -> binary index lookup: the two-character
/// terminfo code and the termcap name of each capability
/// (e.g. `cols`/`co` for `columns`). Source entries may use any
/// of the three spellings.
pub let num_code_index : Map[String, Int] = {
  "cols": 0,
  "co": 0,
  "it": 1,
  "lines": 2,
  "li": 2,
  "lm": 3,
  "xmc": 4,
  "sg": 4,
  "pb": 5,
  "vt": 6,
  "wsl": 7,
  "ws": 7,
  "nlab": 8,
  "Nl": 8,
  "lh": 9,
  "lw": 10,
  "ma": 11,
  "wnum": 12,
  "MW": 12,
  "colors": 13,
  "Co": 13,
  "pairs": 14,
  "pa": 14,
  "ncv": 15,
  "NC": 15,
  "bufsz": 16,
  "Ya": 16,
  "spinv": 17,
  "Yb": 17,
  "spinh": 18,
  "Yc": 18,
  "maddr": 19,
  "Yd": 19,
  "mjump": 20,
  "Ye": 20,
  "mcs": 21,
  "Yf": 21,
  "mls": 22,
  "Yg": 22,
  "npins": 23,
  "Yh": 23,
  "orc": 24,
  "Yi": 24,
  "orl": 25,
  "Yj": 25,
  "orhi": 26,
  "Yk": 26,
  "orvi": 27,
  "Yl": 27,
  "cps": 28,
  "Ym": 28,
  "widcs": 29,
  "Yn": 29,
  "btns": 30,
  "BT": 30,
  "bitwin": 31,
  "Yo": 31,
  "bitype": 32,
  "Yp": 32,
  "OTug": 33,
  "ug": 33,
  "OTdC": 34,
  "dC": 34,
  "OTdN": 35,
  "dN": 35,
  "OTdB": 36,
  "dB": 36,
  "OTdT": 37,
  "dT": 37,
  "OTkn": 38,
  "kn": 38,
}

///|
/// Standard String capability names, in StrCodes order.
pub let str_names : Array[String] = [
  "back_tab", "bell", "carriage_return", "change_scroll_region", "clear_all_tabs",
  "clear_screen", "clr_eol", "clr_eos", "column_address", "command_character", "cursor_address",
  "cursor_down", "cursor_home", "cursor_invisible", "cursor_left", "cursor_mem_address",
  "cursor_normal", "cursor_right", "cursor_to_ll", "cursor_up", "cursor_visible",
  "delete_character", "delete_line", "dis_status_line", "down_half_line", "enter_alt_charset_mode",
  "enter_blink_mode", "enter_bold_mode", "enter_ca_mode", "enter_delete_mode", "enter_dim_mode",
  "enter_insert_mode", "enter_secure_mode", "enter_protected_mode", "enter_reverse_mode",
  "enter_standout_mode", "enter_underline_mode", "erase_chars", "exit_alt_charset_mode",
  "exit_attribute_mode", "exit_ca_mode", "exit_delete_mode", "exit_insert_mode",
  "exit_standout_mode", "exit_underline_mode", "flash_screen", "form_feed", "from_status_line",
  "init_1string", "init_2string", "init_3string", "init_file", "insert_character",
  "insert_line", "insert_padding", "key_backspace", "key_catab", "key_clear", "key_ctab",
  "key_dc", "key_dl", "key_down", "key_eic", "key_eol", "key_eos", "key_f0", "key_f1",
  "key_f10", "key_f2", "key_f3", "key_f4", "key_f5", "key_f6", "key_f7", "key_f8",
  "key_f9", "key_home", "key_ic", "key_il", "key_left", "key_ll", "key_npage", "key_ppage",
  "key_right", "key_sf", "key_sr", "key_stab", "key_up", "keypad_local", "keypad_xmit",
  "lab_f0", "lab_f1", "lab_f10", "lab_f2", "lab_f3", "lab_f4", "lab_f5", "lab_f6",
  "lab_f7", "lab_f8", "lab_f9", "meta_off", "meta_on", "newline", "pad_char", "parm_dch",
  "parm_delete_line", "parm_down_cursor", "parm_ich", "parm_index", "parm_insert_line",
  "parm_left_cursor", "parm_right_cursor", "parm_rindex", "parm_up_cursor", "pkey_key",
  "pkey_local", "pkey_xmit", "print_screen", "prtr_off", "prtr_on", "repeat_char",
  "reset_1string", "reset_2string", "reset_3string", "reset_file", "restore_cursor",
  "row_address", "save_cursor", "scroll_forward", "scroll_reverse", "set_attributes",
  "set_tab", "set_window", "tab", "to_status_line", "underline_char", "up_half_line",
  "init_prog", "key_a1", "key_a3", "key_b2", "key_c1", "key_c3", "prtr_non", "char_padding",
  "acs_chars", "plab_norm", "key_btab", "enter_xon_mode", "exit_xon_mode", "enter_am_mode",
  "exit_am_mode", "xon_character", "xoff_character", "ena_acs", "label_on", "label_off",
  "key_beg", "key_cancel", "key_close", "key_command", "key_copy", "key_create",
  "key_end", "key_enter", "key_exit", "key_find", "key_help", "key_mark", "key_message",
  "key_move", "key_next", "key_open", "key_options", "key_previous", "key_print",
  "key_redo", "key_reference", "key_refresh", "key_replace", "key_restart", "key_resume",
  "key_save", "key_suspend", "key_undo", "key_sbeg", "key_scancel", "key_scommand",
  "key_scopy", "key_screate", "key_sdc", "key_sdl", "key_select", "key_send", "key_seol",
  "key_sexit", "key_sfind", "key_shelp", "key_shome", "key_sic", "key_sleft", "key_smessage",
  "key_smove", "key_snext", "key_soptions", "key_sprevious", "key_sprint", "key_sredo",
  "key_sreplace", "key_sright", "key_srsume", "key_ssave", "key_ssuspend", "key_sundo",
  "req_for_input", "key_f11", "key_f12", "key_f13", "key_f14", "key_f15", "key_f16",
  "key_f17", "key_f18", "key_f19", "key_f20", "key_f21", "key_f22", "key_f23", "key_f24",
  "key_f25", "key_f26", "key_f27", "key_f28", "key_f29", "key_f30", "key_f31", "key_f32",
  "key_f33", "key_f34", "key_f35", "key_f36", "key_f37", "key_f38", "key_f39", "key_f40",
  "key_f41", "key_f42", "key_f43", "key_f44", "key_f45", "key_f46", "key_f47", "key_f48",
  "key_f49", "key_f50", "key_f51", "key_f52", "key_f53", "key_f54", "key_f55", "key_f56",
  "key_f57", "key_f58", "key_f59", "key_f60", "key_f61", "key_f62", "key_f63", "clr_bol",
  "clear_margins", "set_left_margin", "set_right_margin", "label_format", "set_clock",
  "display_clock", "remove_clock", "create_window", "goto_window", "hangup", "dial_phone",
  "quick_dial", "tone", "pulse", "flash_hook", "fixed_pause", "wait_tone", "user0",
  "user1", "user2", "user3", "user4", "user5", "user6", "user7", "user8", "user9",
  "orig_pair", "orig_colors", "initialize_color", "initialize_pair", "set_color_pair",
  "set_foreground", "set_background", "change_char_pitch", "change_line_pitch", "change_res_horz",
  "change_res_vert", "define_char", "enter_doublewide_mode", "enter_draft_quality",
  "enter_italics_mode", "enter_leftward_mode", "enter_micro_mode", "enter_near_letter_quality",
  "enter_normal_quality", "enter_shadow_mode", "enter_subscript_mode", "enter_superscript_mode",
  "enter_upward_mode", "exit_doublewide_mode", "exit_italics_mode", "exit_leftward_mode",
  "exit_micro_mode", "exit_shadow_mode", "exit_subscript_mode", "exit_superscript_mode",
  "exit_upward_mode", "micro_column_address", "micro_down", "micro_left", "micro_right",
  "micro_row_address", "micro_up", "order_of_pins", "parm_down_micro", "parm_left_micro",
  "parm_right_micro", "parm_up_micro", "select_char_set", "set_bottom_margin", "set_bottom_margin_parm",
  "set_left_margin_parm", "set_right_margin_parm", "set_top_margin", "set_top_margin_parm",
  "start_bit_image", "start_char_set_def", "stop_bit_image", "stop_char_set_def",
  "subscript_characters", "superscript_characters", "these_cause_cr", "zero_motion",
  "char_set_names", "key_mouse", "mouse_info", "req_mouse_pos", "get_mouse", "set_a_foreground",
  "set_a_background", "pkey_plab", "device_type", "code_set_init", "set0_des_seq",
  "set1_des_seq", "set2_des_seq", "set3_des_seq", "set_lr_margin", "set_tb_margin",
  "bit_image_repeat", "bit_image_newline", "bit_image_carriage_return", "color_names",
  "define_bit_image_region", "end_bit_image_region", "set_color_band", "set_page_length",
  "display_pc_char", "enter_pc_charset_mode", "exit_pc_charset_mode", "enter_scancode_mode",
  "exit_scancode_mode", "pc_term_options", "scancode_escape", "alt_scancode_esc",
  "enter_horizontal_hl_mode", "enter_left_hl_mode", "enter_low_hl_mode", "enter_right_hl_mode",
  "enter_top_hl_mode", "enter_vertical_hl_mode", "set_a_attributes", "set_pglen_inch",
  "termcap_init2", "termcap_reset", "linefeed_if_not_lf", "backspace_if_not_bs",
  "other_non_function_keys", "arrow_key_map", "acs_ulcorner", "acs_llcorner", "acs_urcorner",
  "acs_lrcorner", "acs_ltee", "acs_rtee", "acs_btee", "acs_ttee", "acs_hline", "acs_vline",
  "acs_plus", "memory_lock", "memory_unlock", "box_chars_1",
]

///|
/// Name -> binary index lookup for string capabilities.
pub let str_index : Map[String, Int] = {
  "back_tab": 0,
  "bell": 1,
  "carriage_return": 2,
  "change_scroll_region": 3,
  "clear_all_tabs": 4,
  "clear_screen": 5,
  "clr_eol": 6,
  "clr_eos": 7,
  "column_address": 8,
  "command_character": 9,
  "cursor_address": 10,
  "cursor_down": 11,
  "cursor_home": 12,
  "cursor_invisible": 13,
  "cursor_left": 14,
  "cursor_mem_address": 15,
  "cursor_normal": 16,
  "cursor_right": 17,
  "cursor_to_ll": 18,
  "cursor_up": 19,
  "cursor_visible": 20,
  "delete_character": 21,
  "delete_line": 22,
  "dis_status_line": 23,
  "down_half_line": 24,
  "enter_alt_charset_mode": 25,
  "enter_blink_mode": 26,
  "enter_bold_mode": 27,
  "enter_ca_mode": 28,
  "enter_delete_mode": 29,
  "enter_dim_mode": 30,
  "enter_insert_mode": 31,
  "enter_secure_mode": 32,
  "enter_protected_mode": 33,
  "enter_reverse_mode": 34,
  "enter_standout_mode": 35,
  "enter_underline_mode": 36,
  "erase_chars": 37,
  "exit_alt_charset_mode": 38,
  "exit_attribute_mode": 39,
  "exit_ca_mode": 40,
  "exit_delete_mode": 41,
  "exit_insert_mode": 42,
  "exit_standout_mode": 43,
  "exit_underline_mode": 44,
  "flash_screen": 45,
  "form_feed": 46,
  "from_status_line": 47,
  "init_1string": 48,
  "init_2string": 49,
  "init_3string": 50,
  "init_file": 51,
  "insert_character": 52,
  "insert_line": 53,
  "insert_padding": 54,
  "key_backspace": 55,
  "key_catab": 56,
  "key_clear": 57,
  "key_ctab": 58,
  "key_dc": 59,
  "key_dl": 60,
  "key_down": 61,
  "key_eic": 62,
  "key_eol": 63,
  "key_eos": 64,
  "key_f0": 65,
  "key_f1": 66,
  "key_f10": 67,
  "key_f2": 68,
  "key_f3": 69,
  "key_f4": 70,
  "key_f5": 71,
  "key_f6": 72,
  "key_f7": 73,
  "key_f8": 74,
  "key_f9": 75,
  "key_home": 76,
  "key_ic": 77,
  "key_il": 78,
  "key_left": 79,
  "key_ll": 80,
  "key_npage": 81,
  "key_ppage": 82,
  "key_right": 83,
  "key_sf": 84,
  "key_sr": 85,
  "key_stab": 86,
  "key_up": 87,
  "keypad_local": 88,
  "keypad_xmit": 89,
  "lab_f0": 90,
  "lab_f1": 91,
  "lab_f10": 92,
  "lab_f2": 93,
  "lab_f3": 94,
  "lab_f4": 95,
  "lab_f5": 96,
  "lab_f6": 97,
  "lab_f7": 98,
  "lab_f8": 99,
  "lab_f9": 100,
  "meta_off": 101,
  "meta_on": 102,
  "newline": 103,
  "pad_char": 104,
  "parm_dch": 105,
  "parm_delete_line": 106,
  "parm_down_cursor": 107,
  "parm_ich": 108,
  "parm_index": 109,
  "parm_insert_line": 110,
  "parm_left_cursor": 111,
  "parm_right_cursor": 112,
  "parm_rindex": 113,
  "parm_up_cursor": 114,
  "pkey_key": 115,
  "pkey_local": 116,
  "pkey_xmit": 117,
  "print_screen": 118,
  "prtr_off": 119,
  "prtr_on": 120,
  "repeat_char": 121,
  "reset_1string": 122,
  "reset_2string": 123,
  "reset_3string": 124,
  "reset_file": 125,
  "restore_cursor": 126,
  "row_address": 127,
  "save_cursor": 128,
  "scroll_forward": 129,
  "scroll_reverse": 130,
  "set_attributes": 131,
  "set_tab": 132,
  "set_window": 133,
  "tab": 134,
  "to_status_line": 135,
  "underline_char": 136,
  "up_half_line": 137,
  "init_prog": 138,
  "key_a1": 139,
  "key_a3": 140,
  "key_b2": 141,
  "key_c1": 142,
  "key_c3": 143,
  "prtr_non": 144,
  "char_padding": 145,
  "acs_chars": 146,
  "plab_norm": 147,
  "key_btab": 148,
  "enter_xon_mode": 149,
  "exit_xon_mode": 150,
  "enter_am_mode": 151,
  "exit_am_mode": 152,
  "xon_character": 153,
  "xoff_character": 154,
  "ena_acs": 155,
  "label_on": 156,
  "label_off": 157,
  "key_beg": 158,
  "key_cancel": 159,
  "key_close": 160,
  "key_command": 161,
  "key_copy": 162,
  "key_create": 163,
  "key_end": 164,
  "key_enter": 165,
  "key_exit": 166,
  "key_find": 167,
  "key_help": 168,
  "key_mark": 169,
  "key_message": 170,
  "key_move": 171,
  "key_next": 172,
  "key_open": 173,
  "key_options": 174,
  "key_previous": 175,
  "key_print": 176,
  "key_redo": 177,
  "key_reference": 178,
  "key_refresh": 179,
  "key_replace": 180,
  "key_restart": 181,
  "key_resume": 182,
  "key_save": 183,
  "key_suspend": 184,
  "key_undo": 185,
  "key_sbeg": 186,
  "key_scancel": 187,
  "key_scommand": 188,
  "key_scopy": 189,
  "key_screate": 190,
  "key_sdc": 191,
  "key_sdl": 192,
  "key_select": 193,
  "key_send": 194,
  "key_seol": 195,
  "key_sexit": 196,
  "key_sfind": 197,
  "key_shelp": 198,
  "key_shome": 199,
  "key_sic": 200,
  "key_sleft": 201,
  "key_smessage": 202,
  "key_smove": 203,
  "key_snext": 204,
  "key_soptions": 205,
  "key_sprevious": 206,
  "key_sprint": 207,
  "key_sredo": 208,
  "key_sreplace": 209,
  "key_sright": 210,
  "key_srsume": 211,
  "key_ssave": 212,
  "key_ssuspend": 213,
  "key_sundo": 214,
  "req_for_input": 215,
  "key_f11": 216,
  "key_f12": 217,
  "key_f13": 218,
  "key_f14": 219,
  "key_f15": 220,
  "key_f16": 221,
  "key_f17": 222,
  "key_f18": 223,
  "key_f19": 224,
  "key_f20": 225,
  "key_f21": 226,
  "key_f22": 227,
  "key_f23": 228,
  "key_f24": 229,
  "key_f25": 230,
  "key_f26": 231,
  "key_f27": 232,
  "key_f28": 233,
  "key_f29": 234,
  "key_f30": 235,
  "key_f31": 236,
  "key_f32": 237,
  "key_f33": 238,
  "key_f34": 239,
  "key_f35": 240,
  "key_f36": 241,
  "key_f37": 242,
  "key_f38": 243,
  "key_f39": 244,
  "key_f40": 245,
  "key_f41": 246,
  "key_f42": 247,
  "key_f43": 248,
  "key_f44": 249,
  "key_f45": 250,
  "key_f46": 251,
  "key_f47": 252,
  "key_f48": 253,
  "key_f49": 254,
  "key_f50": 255,
  "key_f51": 256,
  "key_f52": 257,
  "key_f53": 258,
  "key_f54": 259,
  "key_f55": 260,
  "key_f56": 261,
  "key_f57": 262,
  "key_f58": 263,
  "key_f59": 264,
  "key_f60": 265,
  "key_f61": 266,
  "key_f62": 267,
  "key_f63": 268,
  "clr_bol": 269,
  "clear_margins": 270,
  "set_left_margin": 271,
  "set_right_margin": 272,
  "label_format": 273,
  "set_clock": 274,
  "display_clock": 275,
  "remove_clock": 276,
  "create_window": 277,
  "goto_window": 278,
  "hangup": 279,
  "dial_phone": 280,
  "quick_dial": 281,
  "tone": 282,
  "pulse": 283,
  "flash_hook": 284,
  "fixed_pause": 285,
  "wait_tone": 286,
  "user0": 287,
  "user1": 288,
  "user2": 289,
  "user3": 290,
  "user4": 291,
  "user5": 292,
  "user6": 293,
  "user7": 294,
  "user8": 295,
  "user9": 296,
  "orig_pair": 297,
  "orig_colors": 298,
  "initialize_color": 299,
  "initialize_pair": 300,
  "set_color_pair": 301,
  "set_foreground": 302,
  "set_background": 303,
  "change_char_pitch": 304,
  "change_line_pitch": 305,
  "change_res_horz": 306,
  "change_res_vert": 307,
  "define_char": 308,
  "enter_doublewide_mode": 309,
  "enter_draft_quality": 310,
  "enter_italics_mode": 311,
  "enter_leftward_mode": 312,
  "enter_micro_mode": 313,
  "enter_near_letter_quality": 314,
  "enter_normal_quality": 315,
  "enter_shadow_mode": 316,
  "enter_subscript_mode": 317,
  "enter_superscript_mode": 318,
  "enter_upward_mode": 319,
  "exit_doublewide_mode": 320,
  "exit_italics_mode": 321,
  "exit_leftward_mode": 322,
  "exit_micro_mode": 323,
  "exit_shadow_mode": 324,
  "exit_subscript_mode": 325,
  "exit_superscript_mode": 326,
  "exit_upward_mode": 327,
  "micro_column_address": 328,
  "micro_down": 329,
  "micro_left": 330,
  "micro_right": 331,
  "micro_row_address": 332,
  "micro_up": 333,
  "order_of_pins": 334,
  "parm_down_micro": 335,
  "parm_left_micro": 336,
  "parm_right_micro": 337,
  "parm_up_micro": 338,
  "select_char_set": 339,
  "set_bottom_margin": 340,
  "set_bottom_margin_parm": 341,
  "set_left_margin_parm": 342,
  "set_right_margin_parm": 343,
  "set_top_margin": 344,
  "set_top_margin_parm": 345,
  "start_bit_image": 346,
  "start_char_set_def": 347,
  "stop_bit_image": 348,
  "stop_char_set_def": 349,
  "subscript_characters": 350,
  "superscript_characters": 351,
  "these_cause_cr": 352,
  "zero_motion": 353,
  "char_set_names": 354,
  "key_mouse": 355,
  "mouse_info": 356,
  "req_mouse_pos": 357,
  "get_mouse": 358,
  "set_a_foreground": 359,
  "set_a_background": 360,
  "pkey_plab": 361,
  "device_type": 362,
  "code_set_init": 363,
  "set0_des_seq": 364,
  "set1_des_seq": 365,
  "set2_des_seq": 366,
  "set3_des_seq": 367,
  "set_lr_margin": 368,
  "set_tb_margin": 369,
  "bit_image_repeat": 370,
  "bit_image_newline": 371,
  "bit_image_carriage_return": 372,
  "color_names": 373,
  "define_bit_image_region": 374,
  "end_bit_image_region": 375,
  "set_color_band": 376,
  "set_page_length": 377,
  "display_pc_char": 378,
  "enter_pc_charset_mode": 379,
  "exit_pc_charset_mode": 380,
  "enter_scancode_mode": 381,
  "exit_scancode_mode": 382,
  "pc_term_options": 383,
  "scancode_escape": 384,
  "alt_scancode_esc": 385,
  "enter_horizontal_hl_mode": 386,
  "enter_left_hl_mode": 387,
  "enter_low_hl_mode": 388,
  "enter_right_hl_mode": 389,
  "enter_top_hl_mode": 390,
  "enter_vertical_hl_mode": 391,
  "set_a_attributes": 392,
  "set_pglen_inch": 393,
  "termcap_init2": 394,
  "termcap_reset": 395,
  "linefeed_if_not_lf": 396,
  "backspace_if_not_bs": 397,
  "other_non_function_keys": 398,
  "arrow_key_map": 399,
  "acs_ulcorner": 400,
  "acs_llcorner": 401,
  "acs_urcorner": 402,
  "acs_lrcorner": 403,
  "acs_ltee": 404,
  "acs_rtee": 405,
  "acs_btee": 406,
  "acs_ttee": 407,
  "acs_hline": 408,
  "acs_vline": 409,
  "acs_plus": 410,
  "memory_lock": 411,
  "memory_unlock": 412,
  "box_chars_1": 413,
}

///|
/// Alternate names -> binary index lookup: the two-character
/// terminfo code and the termcap name of each capability
/// (e.g. `cols`/`co` for `columns`). Source entries may use any
/// of the three spellings.
pub let str_code_index : Map[String, Int] = {
  "cbt": 0,
  "bt": 0,
  "bel": 1,
  "bl": 1,
  "cr": 2,
  "csr": 3,
  "cs": 3,
  "tbc": 4,
  "ct": 4,
  "clear": 5,
  "cl": 5,
  "el": 6,
  "ce": 6,
  "ed": 7,
  "cd": 7,
  "hpa": 8,
  "ch": 8,
  "cmdch": 9,
  "CC": 9,
  "cup": 10,
  "cm": 10,
  "cud1": 11,
  "do": 11,
  "home": 12,
  "ho": 12,
  "civis": 13,
  "vi": 13,
  "cub1": 14,
  "le": 14,
  "mrcup": 15,
  "CM": 15,
  "cnorm": 16,
  "ve": 16,
  "cuf1": 17,
  "nd": 17,
  "ll": 18,
  "cuu1": 19,
  "up": 19,
  "cvvis": 20,
  "vs": 20,
  "dch1": 21,
  "dc": 21,
  "dl1": 22,
  "dl": 22,
  "dsl": 23,
  "ds": 23,
  "hd": 24,
  "smacs": 25,
  "as": 25,
  "blink": 26,
  "mb": 26,
  "bold": 27,
  "md": 27,
  "smcup": 28,
  "ti": 28,
  "smdc": 29,
  "dm": 29,
  "dim": 30,
  "mh": 30,
  "smir": 31,
  "im": 31,
  "invis": 32,
  "mk": 32,
  "prot": 33,
  "mp": 33,
  "rev": 34,
  "mr": 34,
  "smso": 35,
  "so": 35,
  "smul": 36,
  "us": 36,
  "ech": 37,
  "ec": 37,
  "rmacs": 38,
  "ae": 38,
  "sgr0": 39,
  "me": 39,
  "rmcup": 40,
  "te": 40,
  "rmdc": 41,
  "rmir": 42,
  "ei": 42,
  "rmso": 43,
  "se": 43,
  "rmul": 44,
  "ue": 44,
  "flash": 45,
  "vb": 45,
  "ff": 46,
  "fsl": 47,
  "fs": 47,
  "is1": 48,
  "i1": 48,
  "is2": 49,
  "is": 49,
  "is3": 50,
  "i3": 50,
  "if": 51,
  "ich1": 52,
  "ic": 52,
  "il1": 53,
  "al": 53,
  "ip": 54,
  "kbs": 55,
  "kb": 55,
  "ktbc": 56,
  "ka": 56,
  "kclr": 57,
  "kC": 57,
  "kctab": 58,
  "kt": 58,
  "kdch1": 59,
  "kD": 59,
  "kdl1": 60,
  "kL": 60,
  "kcud1": 61,
  "kd": 61,
  "krmir": 62,
  "kM": 62,
  "kel": 63,
  "kE": 63,
  "ked": 64,
  "kS": 64,
  "kf0": 65,
  "k0": 65,
  "kf1": 66,
  "k1": 66,
  "kf10": 67,
  "k;": 67,
  "kf2": 68,
  "k2": 68,
  "kf3": 69,
  "k3": 69,
  "kf4": 70,
  "k4": 70,
  "kf5": 71,
  "k5": 71,
  "kf6": 72,
  "k6": 72,
  "kf7": 73,
  "k7": 73,
  "kf8": 74,
  "k8": 74,
  "kf9": 75,
  "k9": 75,
  "khome": 76,
  "kh": 76,
  "kich1": 77,
  "kI": 77,
  "kil1": 78,
  "kA": 78,
  "kcub1": 79,
  "kl": 79,
  "kll": 80,
  "kH": 80,
  "knp": 81,
  "kN": 81,
  "kpp": 82,
  "kP": 82,
  "kcuf1": 83,
  "kr": 83,
  "kind": 84,
  "kF": 84,
  "kri": 85,
  "kR": 85,
  "khts": 86,
  "kT": 86,
  "kcuu1": 87,
  "ku": 87,
  "rmkx": 88,
  "ke": 88,
  "smkx": 89,
  "ks": 89,
  "lf0": 90,
  "l0": 90,
  "lf1": 91,
  "l1": 91,
  "lf10": 92,
  "la": 92,
  "lf2": 93,
  "l2": 93,
  "lf3": 94,
  "l3": 94,
  "lf4": 95,
  "l4": 95,
  "lf5": 96,
  "l5": 96,
  "lf6": 97,
  "l6": 97,
  "lf7": 98,
  "l7": 98,
  "lf8": 99,
  "l8": 99,
  "lf9": 100,
  "l9": 100,
  "rmm": 101,
  "mo": 101,
  "smm": 102,
  "mm": 102,
  "nel": 103,
  "nw": 103,
  "pad": 104,
  "pc": 104,
  "dch": 105,
  "DC": 105,
  "DL": 106,
  "cud": 107,
  "DO": 107,
  "ich": 108,
  "IC": 108,
  "indn": 109,
  "SF": 109,
  "il": 110,
  "AL": 110,
  "cub": 111,
  "LE": 111,
  "cuf": 112,
  "RI": 112,
  "rin": 113,
  "SR": 113,
  "cuu": 114,
  "UP": 114,
  "pfkey": 115,
  "pk": 115,
  "pfloc": 116,
  "pl": 116,
  "pfx": 117,
  "px": 117,
  "mc0": 118,
  "ps": 118,
  "mc4": 119,
  "pf": 119,
  "mc5": 120,
  "po": 120,
  "rep": 121,
  "rp": 121,
  "rs1": 122,
  "r1": 122,
  "rs2": 123,
  "r2": 123,
  "rs3": 124,
  "r3": 124,
  "rf": 125,
  "rc": 126,
  "vpa": 127,
  "cv": 127,
  "sc": 128,
  "ind": 129,
  "sf": 129,
  "ri": 130,
  "sr": 130,
  "sgr": 131,
  "sa": 131,
  "hts": 132,
  "st": 132,
  "wind": 133,
  "wi": 133,
  "ht": 134,
  "ta": 134,
  "tsl": 135,
  "ts": 135,
  "uc": 136,
  "hu": 137,
  "iprog": 138,
  "iP": 138,
  "ka1": 139,
  "K1": 139,
  "ka3": 140,
  "K3": 140,
  "kb2": 141,
  "K2": 141,
  "kc1": 142,
  "K4": 142,
  "kc3": 143,
  "K5": 143,
  "mc5p": 144,
  "pO": 144,
  "rmp": 145,
  "rP": 145,
  "acsc": 146,
  "ac": 146,
  "pln": 147,
  "pn": 147,
  "kcbt": 148,
  "kB": 148,
  "smxon": 149,
  "SX": 149,
  "rmxon": 150,
  "RX": 150,
  "smam": 151,
  "SA": 151,
  "rmam": 152,
  "RA": 152,
  "xonc": 153,
  "XN": 153,
  "xoffc": 154,
  "XF": 154,
  "enacs": 155,
  "eA": 155,
  "smln": 156,
  "LO": 156,
  "rmln": 157,
  "LF": 157,
  "kbeg": 158,
  "@1": 158,
  "kcan": 159,
  "@2": 159,
  "kclo": 160,
  "@3": 160,
  "kcmd": 161,
  "@4": 161,
  "kcpy": 162,
  "@5": 162,
  "kcrt": 163,
  "@6": 163,
  "kend": 164,
  "@7": 164,
  "kent": 165,
  "@8": 165,
  "kext": 166,
  "@9": 166,
  "kfnd": 167,
  "@0": 167,
  "khlp": 168,
  "%1": 168,
  "kmrk": 169,
  "%2": 169,
  "kmsg": 170,
  "%3": 170,
  "kmov": 171,
  "%4": 171,
  "knxt": 172,
  "%5": 172,
  "kopn": 173,
  "%6": 173,
  "kopt": 174,
  "%7": 174,
  "kprv": 175,
  "%8": 175,
  "kprt": 176,
  "%9": 176,
  "krdo": 177,
  "%0": 177,
  "kref": 178,
  "&1": 178,
  "krfr": 179,
  "&2": 179,
  "krpl": 180,
  "&3": 180,
  "krst": 181,
  "&4": 181,
  "kres": 182,
  "&5": 182,
  "ksav": 183,
  "&6": 183,
  "kspd": 184,
  "&7": 184,
  "kund": 185,
  "&8": 185,
  "kBEG": 186,
  "&9": 186,
  "kCAN": 187,
  "&0": 187,
  "kCMD": 188,
  "*1": 188,
  "kCPY": 189,
  "*2": 189,
  "kCRT": 190,
  "*3": 190,
  "kDC": 191,
  "*4": 191,
  "kDL": 192,
  "*5": 192,
  "kslt": 193,
  "*6": 193,
  "kEND": 194,
  "*7": 194,
  "kEOL": 195,
  "*8": 195,
  "kEXT": 196,
  "*9": 196,
  "kFND": 197,
  "*0": 197,
  "kHLP": 198,
  "#1": 198,
  "kHOM": 199,
  "#2": 199,
  "kIC": 200,
  "#3": 200,
  "kLFT": 201,
  "#4": 201,
  "kMSG": 202,
  "%a": 202,
  "kMOV": 203,
  "%b": 203,
  "kNXT": 204,
  "%c": 204,
  "kOPT": 205,
  "%d": 205,
  "kPRV": 206,
  "%e": 206,
  "kPRT": 207,
  "%f": 207,
  "kRDO": 208,
  "%g": 208,
  "kRPL": 209,
  "%h": 209,
  "kRIT": 210,
  "%i": 210,
  "kRES": 211,
  "%j": 211,
  "kSAV": 212,
  "!1": 212,
  "kSPD": 213,
  "!2": 213,
  "kUND": 214,
  "!3": 214,
  "rfi": 215,
  "RF": 215,
  "kf11": 216,
  "F1": 216,
  "kf12": 217,
  "F2": 217,
  "kf13": 218,
  "F3": 218,
  "kf14": 219,
  "F4": 219,
  "kf15": 220,
  "F5": 220,
  "kf16": 221,
  "F6": 221,
  "kf17": 222,
  "F7": 222,
  "kf18": 223,
  "F8": 223,
  "kf19": 224,
  "F9": 224,
  "kf20": 225,
  "FA": 225,
  "kf21": 226,
  "FB": 226,
  "kf22": 227,
  "FC": 227,
  "kf23": 228,
  "FD": 228,
  "kf24": 229,
  "FE": 229,
  "kf25": 230,
  "FF": 230,
  "kf26": 231,
  "FG": 231,
  "kf27": 232,
  "FH": 232,
  "kf28": 233,
  "FI": 233,
  "kf29": 234,
  "FJ": 234,
  "kf30": 235,
  "FK": 235,
  "kf31": 236,
  "FL": 236,
  "kf32": 237,
  "FM": 237,
  "kf33": 238,
  "FN": 238,
  "kf34": 239,
  "FO": 239,
  "kf35": 240,
  "FP": 240,
  "kf36": 241,
  "FQ": 241,
  "kf37": 242,
  "FR": 242,
  "kf38": 243,
  "FS": 243,
  "kf39": 244,
  "FT": 244,
  "kf40": 245,
  "FU": 245,
  "kf41": 246,
  "FV": 246,
  "kf42": 247,
  "FW": 247,
  "kf43": 248,
  "FX": 248,
  "kf44": 249,
  "FY": 249,
  "kf45": 250,
  "FZ": 250,
  "kf46": 251,
  "Fa": 251,
  "kf47": 252,
  "Fb": 252,
  "kf48": 253,
  "Fc": 253,
  "kf49": 254,
  "Fd": 254,
  "kf50": 255,
  "Fe": 255,
  "kf51": 256,
  "Ff": 256,
  "kf52": 257,
  "Fg": 257,
  "kf53": 258,
  "Fh": 258,
  "kf54": 259,
  "Fi": 259,
  "kf55": 260,
  "Fj": 260,
  "kf56": 261,
  "Fk": 261,
  "kf57": 262,
  "Fl": 262,
  "kf58": 263,
  "Fm": 263,
  "kf59": 264,
  "Fn": 264,
  "kf60": 265,
  "Fo": 265,
  "kf61": 266,
  "Fp": 266,
  "kf62": 267,
  "Fq": 267,
  "kf63": 268,
  "Fr": 268,
  "el1": 269,
  "cb": 269,
  "mgc": 270,
  "MC": 270,
  "smgl": 271,
  "ML": 271,
  "smgr": 272,
  "MR": 272,
  "fln": 273,
  "Lf": 273,
  "sclk": 274,
  "SC": 274,
  "dclk": 275,
  "DK": 275,
  "rmclk": 276,
  "RC": 276,
  "cwin": 277,
  "CW": 277,
  "wingo": 278,
  "WG": 278,
  "hup": 279,
  "HU": 279,
  "dial": 280,
  "DI": 280,
  "qdial": 281,
  "QD": 281,
  "tone": 282,
  "TO": 282,
  "pulse": 283,
  "PU": 283,
  "hook": 284,
  "fh": 284,
  "pause": 285,
  "PA": 285,
  "wait": 286,
  "WA": 286,
  "u0": 287,
  "u1": 288,
  "u2": 289,
  "u3": 290,
  "u4": 291,
  "u5": 292,
  "u6": 293,
  "u7": 294,
  "u8": 295,
  "u9": 296,
  "op": 297,
  "oc": 298,
  "initc": 299,
  "Ic": 299,
  "initp": 300,
  "Ip": 300,
  "scp": 301,
  "sp": 301,
  "setf": 302,
  "Sf": 302,
  "setb": 303,
  "Sb": 303,
  "cpi": 304,
  "ZA": 304,
  "lpi": 305,
  "ZB": 305,
  "chr": 306,
  "ZC": 306,
  "cvr": 307,
  "ZD": 307,
  "defc": 308,
  "ZE": 308,
  "swidm": 309,
  "ZF": 309,
  "sdrfq": 310,
  "ZG": 310,
  "sitm": 311,
  "ZH": 311,
  "slm": 312,
  "ZI": 312,
  "smicm": 313,
  "ZJ": 313,
  "snlq": 314,
  "ZK": 314,
  "snrmq": 315,
  "ZL": 315,
  "sshm": 316,
  "ZM": 316,
  "ssubm": 317,
  "ZN": 317,
  "ssupm": 318,
  "ZO": 318,
  "sum": 319,
  "ZP": 319,
  "rwidm": 320,
  "ZQ": 320,
  "ritm": 321,
  "ZR": 321,
  "rlm": 322,
  "ZS": 322,
  "rmicm": 323,
  "ZT": 323,
  "rshm": 324,
  "ZU": 324,
  "rsubm": 325,
  "ZV": 325,
  "rsupm": 326,
  "ZW": 326,
  "rum": 327,
  "ZX": 327,
  "mhpa": 328,
  "ZY": 328,
  "mcud1": 329,
  "ZZ": 329,
  "mcub1": 330,
  "Za": 330,
  "mcuf1": 331,
  "Zb": 331,
  "mvpa": 332,
  "Zc": 332,
  "mcuu1": 333,
  "Zd": 333,
  "porder": 334,
  "Ze": 334,
  "mcud": 335,
  "Zf": 335,
  "mcub": 336,
  "Zg": 336,
  "mcuf": 337,
  "Zh": 337,
  "mcuu": 338,
  "Zi": 338,
  "scs": 339,
  "Zj": 339,
  "smgb": 340,
  "Zk": 340,
  "smgbp": 341,
  "Zl": 341,
  "smglp": 342,
  "Zm": 342,
  "smgrp": 343,
  "Zn": 343,
  "smgt": 344,
  "Zo": 344,
  "smgtp": 345,
  "Zp": 345,
  "sbim": 346,
  "Zq": 346,
  "scsd": 347,
  "Zr": 347,
  "rbim": 348,
  "Zs": 348,
  "rcsd": 349,
  "Zt": 349,
  "subcs": 350,
  "Zu": 350,
  "supcs": 351,
  "Zv": 351,
  "docr": 352,
  "Zw": 352,
  "zerom": 353,
  "Zx": 353,
  "csnm": 354,
  "Zy": 354,
  "kmous": 355,
  "Km": 355,
  "minfo": 356,
  "Mi": 356,
  "reqmp": 357,
  "RQ": 357,
  "getm": 358,
  "Gm": 358,
  "setaf": 359,
  "AF": 359,
  "setab": 360,
  "AB": 360,
  "pfxl": 361,
  "xl": 361,
  "devt": 362,
  "dv": 362,
  "csin": 363,
  "ci": 363,
  "s0ds": 364,
  "s0": 364,
  "s1ds": 365,
  "s1": 365,
  "s2ds": 366,
  "s2": 366,
  "s3ds": 367,
  "s3": 367,
  "smglr": 368,
  "smgtb": 369,
  "MT": 369,
  "birep": 370,
  "Xy": 370,
  "binel": 371,
  "Zz": 371,
  "bicr": 372,
  "Yv": 372,
  "colornm": 373,
  "Yw": 373,
  "defbi": 374,
  "Yx": 374,
  "endbi": 375,
  "Yy": 375,
  "setcolor": 376,
  "Yz": 376,
  "slines": 377,
  "YZ": 377,
  "dispc": 378,
  "S1": 378,
  "smpch": 379,
  "S2": 379,
  "rmpch": 380,
  "S3": 380,
  "smsc": 381,
  "S4": 381,
  "rmsc": 382,
  "S5": 382,
  "pctrm": 383,
  "S6": 383,
  "scesc": 384,
  "S7": 384,
  "scesa": 385,
  "S8": 385,
  "ehhlm": 386,
  "Xh": 386,
  "elhlm": 387,
  "Xl": 387,
  "elohlm": 388,
  "Xo": 388,
  "erhlm": 389,
  "Xr": 389,
  "ethlm": 390,
  "Xt": 390,
  "evhlm": 391,
  "Xv": 391,
  "sgr1": 392,
  "sA": 392,
  "slength": 393,
  "YI": 393,
  "OTi2": 394,
  "i2": 394,
  "OTrs": 395,
  "rs": 395,
  "OTnl": 396,
  "nl": 396,
  "OTbc": 397,
  "bc": 397,
  "OTko": 398,
  "ko": 398,
  "OTma": 399,
  "ma": 399,
  "OTG2": 400,
  "G2": 400,
  "OTG3": 401,
  "G3": 401,
  "OTG1": 402,
  "G1": 402,
  "OTG4": 403,
  "G4": 403,
  "OTGR": 404,
  "GR": 404,
  "OTGL": 405,
  "GL": 405,
  "OTGU": 406,
  "GU": 406,
  "OTGD": 407,
  "GD": 407,
  "OTGH": 408,
  "GH": 408,
  "OTGV": 409,
  "GV": 409,
  "OTGC": 410,
  "GC": 410,
  "meml": 411,
  "ml": 411,
  "memu": 412,
  "mu": 412,
  "box1": 413,
  "bx": 413,
}