Raw File
terminfo.jl
let
    dumb_terminfo = UInt8[
        0x1a, 0x01, 0x18, 0x00, 0x02, 0x00, 0x01, 0x00, 0x82, 0x00, 0x08, 0x00,
        0x64, 0x75, 0x6d, 0x62, 0x7c, 0x38, 0x30, 0x2d, 0x63, 0x6f, 0x6c, 0x75,
        0x6d, 0x6e, 0x20, 0x64, 0x75, 0x6d, 0x62, 0x20, 0x74, 0x74, 0x79, 0x00,
        0x00, 0x01, 0x50, 0x00, 0xff, 0xff, 0x00, 0x00, 0x02, 0x00, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0x04, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x06, 0x00,
        0x07, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x0a, 0x00]

    dumb_capabilities = Dict{Symbol, Union{Bool, Int, String}}(
        :am => true,
        :auto_right_margin => true,
        :bw => false,
        :auto_left_margin => false,
        :bel => "\a",
        :bell => "\a",
        :cr => "\r",
        :carriage_return => "\r",
        :cols => 80,
        :columns => 80,
        :cud1 => "\n",
        :cursor_down => "\n",
        :ind => "\n",
        :scroll_forward => "\n")

    xterm_terminfo = UInt8[
        0x1a, 0x01, 0x30, 0x00, 0x26, 0x00, 0x0f, 0x00, 0x9d, 0x01, 0xe6, 0x05,
        0x78, 0x74, 0x65, 0x72, 0x6d, 0x7c, 0x78, 0x74, 0x65, 0x72, 0x6d, 0x20,
        0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x65, 0x6d, 0x75,
        0x6c, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x28, 0x58, 0x20, 0x57, 0x69, 0x6e,
        0x64, 0x6f, 0x77, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x29, 0x00,
        0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
        0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
        0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x01, 0x50, 0x00, 0x08, 0x00, 0x18, 0x00, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0x08, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00,
        0x06, 0x00, 0x08, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x26, 0x00, 0x2a, 0x00,
        0x2e, 0x00, 0xff, 0xff, 0x39, 0x00, 0x4a, 0x00, 0x4c, 0x00, 0x50, 0x00,
        0x57, 0x00, 0xff, 0xff, 0x59, 0x00, 0x66, 0x00, 0xff, 0xff, 0x6a, 0x00,
        0x6e, 0x00, 0x78, 0x00, 0x7c, 0x00, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
        0x84, 0x00, 0x89, 0x00, 0x8e, 0x00, 0xff, 0xff, 0xa0, 0x00, 0xa5, 0x00,
        0xaa, 0x00, 0xff, 0xff, 0xaf, 0x00, 0xb4, 0x00, 0xb9, 0x00, 0xbe, 0x00,
        0xc7, 0x00, 0xcb, 0x00, 0xd2, 0x00, 0xff, 0xff, 0xe4, 0x00, 0xe9, 0x00,
        0xef, 0x00, 0xf5, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x01,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x01, 0xff, 0xff, 0x1d, 0x01,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x01, 0xff, 0xff, 0x24, 0x01,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x28, 0x01, 0x2c, 0x01,
        0x32, 0x01, 0x36, 0x01, 0x3a, 0x01, 0x3e, 0x01, 0x44, 0x01, 0x4a, 0x01,
        0x50, 0x01, 0x56, 0x01, 0x5c, 0x01, 0x60, 0x01, 0xff, 0xff, 0x65, 0x01,
        0xff, 0xff, 0x69, 0x01, 0x6e, 0x01, 0x73, 0x01, 0x77, 0x01, 0x7e, 0x01,
        0xff, 0xff, 0x85, 0x01, 0x89, 0x01, 0x91, 0x01, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0x01, 0xa2, 0x01, 0xff, 0xff,
        0xff, 0xff, 0xab, 0x01, 0xb4, 0x01, 0xbd, 0x01, 0xc6, 0x01, 0xcf, 0x01,
        0xd8, 0x01, 0xe1, 0x01, 0xea, 0x01, 0xf3, 0x01, 0xfc, 0x01, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0x05, 0x02, 0x09, 0x02, 0x0e, 0x02, 0x13, 0x02,
        0x27, 0x02, 0x2a, 0x02, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x02, 0x3f, 0x02,
        0x4a, 0x02, 0x4d, 0x02, 0x4f, 0x02, 0x52, 0x02, 0xaf, 0x02, 0xff, 0xff,
        0xb2, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x02,
        0xb8, 0x02, 0xbc, 0x02, 0xc0, 0x02, 0xc4, 0x02, 0xff, 0xff, 0xff, 0xff,
        0xc8, 0x02, 0xff, 0xff, 0xfd, 0x02, 0xff, 0xff, 0xff, 0xff, 0x01, 0x03,
        0x07, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0x0d, 0x03, 0x11, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x03, 0xff, 0xff, 0xff, 0xff,
        0x1c, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x23, 0x03,
        0x2a, 0x03, 0x31, 0x03, 0xff, 0xff, 0xff, 0xff, 0x38, 0x03, 0xff, 0xff,
        0x3f, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x46, 0x03, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4d, 0x03, 0x53, 0x03,
        0x59, 0x03, 0x60, 0x03, 0x67, 0x03, 0x6e, 0x03, 0x75, 0x03, 0x7d, 0x03,
        0x85, 0x03, 0x8d, 0x03, 0x95, 0x03, 0x9d, 0x03, 0xa5, 0x03, 0xad, 0x03,
        0xb5, 0x03, 0xbc, 0x03, 0xc3, 0x03, 0xca, 0x03, 0xd1, 0x03, 0xd9, 0x03,
        0xe1, 0x03, 0xe9, 0x03, 0xf1, 0x03, 0xf9, 0x03, 0x01, 0x04, 0x09, 0x04,
        0x11, 0x04, 0x18, 0x04, 0x1f, 0x04, 0x26, 0x04, 0x2d, 0x04, 0x35, 0x04,
        0x3d, 0x04, 0x45, 0x04, 0x4d, 0x04, 0x55, 0x04, 0x5d, 0x04, 0x65, 0x04,
        0x6d, 0x04, 0x74, 0x04, 0x7b, 0x04, 0x82, 0x04, 0x89, 0x04, 0x91, 0x04,
        0x99, 0x04, 0xa1, 0x04, 0xa9, 0x04, 0xb1, 0x04, 0xb9, 0x04, 0xc1, 0x04,
        0xc9, 0x04, 0xd0, 0x04, 0xd7, 0x04, 0xde, 0x04, 0xe3, 0x04, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xea, 0x04, 0xf5, 0x04, 0xfa, 0x04,
        0x0d, 0x05, 0x11, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0x1a, 0x05, 0x60, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0x05, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xab, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0x05,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x05, 0xbf, 0x05, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xc9, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        0xff, 0xff, 0xe0, 0x05, 0xe3, 0x05, 0x1b, 0x5b, 0x5a, 0x00, 0x07, 0x00,
        0x0d, 0x00, 0x1b, 0x5b, 0x25, 0x69, 0x25, 0x70, 0x31, 0x25, 0x64, 0x3b,
        0x25, 0x70, 0x32, 0x25, 0x64, 0x72, 0x00, 0x1b, 0x5b, 0x33, 0x67, 0x00,
        0x1b, 0x5b, 0x48, 0x1b, 0x5b, 0x32, 0x4a, 0x00, 0x1b, 0x5b, 0x4b, 0x00,
        0x1b, 0x5b, 0x4a, 0x00, 0x1b, 0x5b, 0x25, 0x69, 0x25, 0x70, 0x31, 0x25,
        0x64, 0x47, 0x00, 0x1b, 0x5b, 0x25, 0x69, 0x25, 0x70, 0x31, 0x25, 0x64,
        0x3b, 0x25, 0x70, 0x32, 0x25, 0x64, 0x48, 0x00, 0x0a, 0x00, 0x1b, 0x5b,
        0x48, 0x00, 0x1b, 0x5b, 0x3f, 0x32, 0x35, 0x6c, 0x00, 0x08, 0x00, 0x1b,
        0x5b, 0x3f, 0x31, 0x32, 0x6c, 0x1b, 0x5b, 0x3f, 0x32, 0x35, 0x68, 0x00,
        0x1b, 0x5b, 0x43, 0x00, 0x1b, 0x5b, 0x41, 0x00, 0x1b, 0x5b, 0x3f, 0x31,
        0x32, 0x3b, 0x32, 0x35, 0x68, 0x00, 0x1b, 0x5b, 0x50, 0x00, 0x1b, 0x5b,
        0x4d, 0x00, 0x1b, 0x28, 0x30, 0x00, 0x1b, 0x5b, 0x35, 0x6d, 0x00, 0x1b,
        0x5b, 0x31, 0x6d, 0x00, 0x1b, 0x5b, 0x3f, 0x31, 0x30, 0x34, 0x39, 0x68,
        0x1b, 0x5b, 0x32, 0x32, 0x3b, 0x30, 0x3b, 0x30, 0x74, 0x00, 0x1b, 0x5b,
        0x32, 0x6d, 0x00, 0x1b, 0x5b, 0x34, 0x68, 0x00, 0x1b, 0x5b, 0x38, 0x6d,
        0x00, 0x1b, 0x5b, 0x37, 0x6d, 0x00, 0x1b, 0x5b, 0x37, 0x6d, 0x00, 0x1b,
        0x5b, 0x34, 0x6d, 0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31, 0x25, 0x64, 0x58,
        0x00, 0x1b, 0x28, 0x42, 0x00, 0x1b, 0x28, 0x42, 0x1b, 0x5b, 0x6d, 0x00,
        0x1b, 0x5b, 0x3f, 0x31, 0x30, 0x34, 0x39, 0x6c, 0x1b, 0x5b, 0x32, 0x33,
        0x3b, 0x30, 0x3b, 0x30, 0x74, 0x00, 0x1b, 0x5b, 0x34, 0x6c, 0x00, 0x1b,
        0x5b, 0x32, 0x37, 0x6d, 0x00, 0x1b, 0x5b, 0x32, 0x34, 0x6d, 0x00, 0x1b,
        0x5b, 0x3f, 0x35, 0x68, 0x24, 0x3c, 0x31, 0x30, 0x30, 0x2f, 0x3e, 0x1b,
        0x5b, 0x3f, 0x35, 0x6c, 0x00, 0x1b, 0x5b, 0x21, 0x70, 0x1b, 0x5b, 0x3f,
        0x33, 0x3b, 0x34, 0x6c, 0x1b, 0x5b, 0x34, 0x6c, 0x1b, 0x3e, 0x00, 0x1b,
        0x5b, 0x4c, 0x00, 0x08, 0x00, 0x1b, 0x5b, 0x33, 0x7e, 0x00, 0x1b, 0x4f,
        0x42, 0x00, 0x1b, 0x4f, 0x50, 0x00, 0x1b, 0x5b, 0x32, 0x31, 0x7e, 0x00,
        0x1b, 0x4f, 0x51, 0x00, 0x1b, 0x4f, 0x52, 0x00, 0x1b, 0x4f, 0x53, 0x00,
        0x1b, 0x5b, 0x31, 0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x37, 0x7e, 0x00,
        0x1b, 0x5b, 0x31, 0x38, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x39, 0x7e, 0x00,
        0x1b, 0x5b, 0x32, 0x30, 0x7e, 0x00, 0x1b, 0x4f, 0x48, 0x00, 0x1b, 0x5b,
        0x32, 0x7e, 0x00, 0x1b, 0x4f, 0x44, 0x00, 0x1b, 0x5b, 0x36, 0x7e, 0x00,
        0x1b, 0x5b, 0x35, 0x7e, 0x00, 0x1b, 0x4f, 0x43, 0x00, 0x1b, 0x5b, 0x31,
        0x3b, 0x32, 0x42, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x32, 0x41, 0x00, 0x1b,
        0x4f, 0x41, 0x00, 0x1b, 0x5b, 0x3f, 0x31, 0x6c, 0x1b, 0x3e, 0x00, 0x1b,
        0x5b, 0x3f, 0x31, 0x68, 0x1b, 0x3d, 0x00, 0x1b, 0x5b, 0x3f, 0x31, 0x30,
        0x33, 0x34, 0x6c, 0x00, 0x1b, 0x5b, 0x3f, 0x31, 0x30, 0x33, 0x34, 0x68,
        0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31, 0x25, 0x64, 0x50, 0x00, 0x1b, 0x5b,
        0x25, 0x70, 0x31, 0x25, 0x64, 0x4d, 0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31,
        0x25, 0x64, 0x42, 0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31, 0x25, 0x64, 0x40,
        0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31, 0x25, 0x64, 0x53, 0x00, 0x1b, 0x5b,
        0x25, 0x70, 0x31, 0x25, 0x64, 0x4c, 0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31,
        0x25, 0x64, 0x44, 0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31, 0x25, 0x64, 0x43,
        0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31, 0x25, 0x64, 0x54, 0x00, 0x1b, 0x5b,
        0x25, 0x70, 0x31, 0x25, 0x64, 0x41, 0x00, 0x1b, 0x5b, 0x69, 0x00, 0x1b,
        0x5b, 0x34, 0x69, 0x00, 0x1b, 0x5b, 0x35, 0x69, 0x00, 0x25, 0x70, 0x31,
        0x25, 0x63, 0x1b, 0x5b, 0x25, 0x70, 0x32, 0x25, 0x7b, 0x31, 0x7d, 0x25,
        0x2d, 0x25, 0x64, 0x62, 0x00, 0x1b, 0x63, 0x00, 0x1b, 0x5b, 0x21, 0x70,
        0x1b, 0x5b, 0x3f, 0x33, 0x3b, 0x34, 0x6c, 0x1b, 0x5b, 0x34, 0x6c, 0x1b,
        0x3e, 0x00, 0x1b, 0x38, 0x00, 0x1b, 0x5b, 0x25, 0x69, 0x25, 0x70, 0x31,
        0x25, 0x64, 0x64, 0x00, 0x1b, 0x37, 0x00, 0x0a, 0x00, 0x1b, 0x4d, 0x00,
        0x25, 0x3f, 0x25, 0x70, 0x39, 0x25, 0x74, 0x1b, 0x28, 0x30, 0x25, 0x65,
        0x1b, 0x28, 0x42, 0x25, 0x3b, 0x1b, 0x5b, 0x30, 0x25, 0x3f, 0x25, 0x70,
        0x36, 0x25, 0x74, 0x3b, 0x31, 0x25, 0x3b, 0x25, 0x3f, 0x25, 0x70, 0x35,
        0x25, 0x74, 0x3b, 0x32, 0x25, 0x3b, 0x25, 0x3f, 0x25, 0x70, 0x32, 0x25,
        0x74, 0x3b, 0x34, 0x25, 0x3b, 0x25, 0x3f, 0x25, 0x70, 0x31, 0x25, 0x70,
        0x33, 0x25, 0x7c, 0x25, 0x74, 0x3b, 0x37, 0x25, 0x3b, 0x25, 0x3f, 0x25,
        0x70, 0x34, 0x25, 0x74, 0x3b, 0x35, 0x25, 0x3b, 0x25, 0x3f, 0x25, 0x70,
        0x37, 0x25, 0x74, 0x3b, 0x38, 0x25, 0x3b, 0x6d, 0x00, 0x1b, 0x48, 0x00,
        0x09, 0x00, 0x1b, 0x4f, 0x77, 0x00, 0x1b, 0x4f, 0x79, 0x00, 0x1b, 0x4f,
        0x75, 0x00, 0x1b, 0x4f, 0x71, 0x00, 0x1b, 0x4f, 0x73, 0x00, 0x60, 0x60,
        0x61, 0x61, 0x66, 0x66, 0x67, 0x67, 0x69, 0x69, 0x6a, 0x6a, 0x6b, 0x6b,
        0x6c, 0x6c, 0x6d, 0x6d, 0x6e, 0x6e, 0x6f, 0x6f, 0x70, 0x70, 0x71, 0x71,
        0x72, 0x72, 0x73, 0x73, 0x74, 0x74, 0x75, 0x75, 0x76, 0x76, 0x77, 0x77,
        0x78, 0x78, 0x79, 0x79, 0x7a, 0x7a, 0x7b, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d,
        0x7e, 0x7e, 0x00, 0x1b, 0x5b, 0x5a, 0x00, 0x1b, 0x5b, 0x3f, 0x37, 0x68,
        0x00, 0x1b, 0x5b, 0x3f, 0x37, 0x6c, 0x00, 0x1b, 0x4f, 0x46, 0x00, 0x1b,
        0x4f, 0x4d, 0x00, 0x1b, 0x5b, 0x33, 0x3b, 0x32, 0x7e, 0x00, 0x1b, 0x5b,
        0x31, 0x3b, 0x32, 0x46, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x32, 0x48, 0x00,
        0x1b, 0x5b, 0x32, 0x3b, 0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x32,
        0x44, 0x00, 0x1b, 0x5b, 0x36, 0x3b, 0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x35,
        0x3b, 0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x32, 0x43, 0x00, 0x1b,
        0x5b, 0x32, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x34, 0x7e, 0x00, 0x1b,
        0x5b, 0x31, 0x3b, 0x32, 0x50, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x32, 0x51,
        0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x32, 0x52, 0x00, 0x1b, 0x5b, 0x31, 0x3b,
        0x32, 0x53, 0x00, 0x1b, 0x5b, 0x31, 0x35, 0x3b, 0x32, 0x7e, 0x00, 0x1b,
        0x5b, 0x31, 0x37, 0x3b, 0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x38, 0x3b,
        0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x39, 0x3b, 0x32, 0x7e, 0x00, 0x1b,
        0x5b, 0x32, 0x30, 0x3b, 0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x31, 0x3b,
        0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x33, 0x3b, 0x32, 0x7e, 0x00, 0x1b,
        0x5b, 0x32, 0x34, 0x3b, 0x32, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35,
        0x50, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35, 0x51, 0x00, 0x1b, 0x5b, 0x31,
        0x3b, 0x35, 0x52, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35, 0x53, 0x00, 0x1b,
        0x5b, 0x31, 0x35, 0x3b, 0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x37, 0x3b,
        0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x38, 0x3b, 0x35, 0x7e, 0x00, 0x1b,
        0x5b, 0x31, 0x39, 0x3b, 0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x30, 0x3b,
        0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x31, 0x3b, 0x35, 0x7e, 0x00, 0x1b,
        0x5b, 0x32, 0x33, 0x3b, 0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x34, 0x3b,
        0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x36, 0x50, 0x00, 0x1b, 0x5b,
        0x31, 0x3b, 0x36, 0x51, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x36, 0x52, 0x00,
        0x1b, 0x5b, 0x31, 0x3b, 0x36, 0x53, 0x00, 0x1b, 0x5b, 0x31, 0x35, 0x3b,
        0x36, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x37, 0x3b, 0x36, 0x7e, 0x00, 0x1b,
        0x5b, 0x31, 0x38, 0x3b, 0x36, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x39, 0x3b,
        0x36, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x30, 0x3b, 0x36, 0x7e, 0x00, 0x1b,
        0x5b, 0x32, 0x31, 0x3b, 0x36, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x33, 0x3b,
        0x36, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x34, 0x3b, 0x36, 0x7e, 0x00, 0x1b,
        0x5b, 0x31, 0x3b, 0x33, 0x50, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x33, 0x51,
        0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x33, 0x52, 0x00, 0x1b, 0x5b, 0x31, 0x3b,
        0x33, 0x53, 0x00, 0x1b, 0x5b, 0x31, 0x35, 0x3b, 0x33, 0x7e, 0x00, 0x1b,
        0x5b, 0x31, 0x37, 0x3b, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x38, 0x3b,
        0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x39, 0x3b, 0x33, 0x7e, 0x00, 0x1b,
        0x5b, 0x32, 0x30, 0x3b, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x31, 0x3b,
        0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x33, 0x3b, 0x33, 0x7e, 0x00, 0x1b,
        0x5b, 0x32, 0x34, 0x3b, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x34,
        0x50, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x34, 0x51, 0x00, 0x1b, 0x5b, 0x31,
        0x3b, 0x34, 0x52, 0x00, 0x1b, 0x5b, 0x31, 0x4b, 0x00, 0x1b, 0x5b, 0x3f,
        0x36, 0x39, 0x6c, 0x00, 0x1b, 0x5b, 0x25, 0x69, 0x25, 0x64, 0x3b, 0x25,
        0x64, 0x52, 0x00, 0x1b, 0x5b, 0x36, 0x6e, 0x00, 0x1b, 0x5b, 0x3f, 0x25,
        0x5b, 0x3b, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
        0x5d, 0x63, 0x00, 0x1b, 0x5b, 0x63, 0x00, 0x1b, 0x5b, 0x33, 0x39, 0x3b,
        0x34, 0x39, 0x6d, 0x00, 0x1b, 0x5b, 0x33, 0x25, 0x3f, 0x25, 0x70, 0x31,
        0x25, 0x7b, 0x31, 0x7d, 0x25, 0x3d, 0x25, 0x74, 0x34, 0x25, 0x65, 0x25,
        0x70, 0x31, 0x25, 0x7b, 0x33, 0x7d, 0x25, 0x3d, 0x25, 0x74, 0x36, 0x25,
        0x65, 0x25, 0x70, 0x31, 0x25, 0x7b, 0x34, 0x7d, 0x25, 0x3d, 0x25, 0x74,
        0x31, 0x25, 0x65, 0x25, 0x70, 0x31, 0x25, 0x7b, 0x36, 0x7d, 0x25, 0x3d,
        0x25, 0x74, 0x33, 0x25, 0x65, 0x25, 0x70, 0x31, 0x25, 0x64, 0x25, 0x3b,
        0x6d, 0x00, 0x1b, 0x5b, 0x34, 0x25, 0x3f, 0x25, 0x70, 0x31, 0x25, 0x7b,
        0x31, 0x7d, 0x25, 0x3d, 0x25, 0x74, 0x34, 0x25, 0x65, 0x25, 0x70, 0x31,
        0x25, 0x7b, 0x33, 0x7d, 0x25, 0x3d, 0x25, 0x74, 0x36, 0x25, 0x65, 0x25,
        0x70, 0x31, 0x25, 0x7b, 0x34, 0x7d, 0x25, 0x3d, 0x25, 0x74, 0x31, 0x25,
        0x65, 0x25, 0x70, 0x31, 0x25, 0x7b, 0x36, 0x7d, 0x25, 0x3d, 0x25, 0x74,
        0x33, 0x25, 0x65, 0x25, 0x70, 0x31, 0x25, 0x64, 0x25, 0x3b, 0x6d, 0x00,
        0x1b, 0x5b, 0x33, 0x6d, 0x00, 0x1b, 0x5b, 0x32, 0x33, 0x6d, 0x00, 0x1b,
        0x5b, 0x3c, 0x00, 0x1b, 0x5b, 0x33, 0x25, 0x70, 0x31, 0x25, 0x64, 0x6d,
        0x00, 0x1b, 0x5b, 0x34, 0x25, 0x70, 0x31, 0x25, 0x64, 0x6d, 0x00, 0x1b,
        0x5b, 0x3f, 0x36, 0x39, 0x68, 0x1b, 0x5b, 0x25, 0x69, 0x25, 0x70, 0x31,
        0x25, 0x64, 0x3b, 0x25, 0x70, 0x32, 0x25, 0x64, 0x73, 0x00, 0x1b, 0x6c,
        0x00, 0x1b, 0x6d, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x96, 0x00,
        0xac, 0x03, 0x01, 0x01, 0x00, 0x00, 0x07, 0x00, 0x13, 0x00, 0x18, 0x00,
        0x2a, 0x00, 0x30, 0x00, 0x3a, 0x00, 0x5a, 0x00, 0x61, 0x00, 0x68, 0x00,
        0x6f, 0x00, 0x76, 0x00, 0x7d, 0x00, 0x84, 0x00, 0x8b, 0x00, 0x92, 0x00,
        0x99, 0x00, 0xa0, 0x00, 0xa7, 0x00, 0xae, 0x00, 0xb5, 0x00, 0xbc, 0x00,
        0xc3, 0x00, 0xca, 0x00, 0xd1, 0x00, 0xd8, 0x00, 0xdf, 0x00, 0xe6, 0x00,
        0xed, 0x00, 0xf4, 0x00, 0xfb, 0x00, 0x02, 0x01, 0x09, 0x01, 0x10, 0x01,
        0x17, 0x01, 0x1e, 0x01, 0x25, 0x01, 0x2c, 0x01, 0x33, 0x01, 0x3a, 0x01,
        0x41, 0x01, 0x48, 0x01, 0x4f, 0x01, 0x56, 0x01, 0x5d, 0x01, 0x64, 0x01,
        0x6b, 0x01, 0x72, 0x01, 0x79, 0x01, 0x80, 0x01, 0x87, 0x01, 0x8e, 0x01,
        0x95, 0x01, 0x9c, 0x01, 0xa3, 0x01, 0xaa, 0x01, 0xb1, 0x01, 0xb8, 0x01,
        0xbf, 0x01, 0xc6, 0x01, 0xca, 0x01, 0xce, 0x01, 0xd2, 0x01, 0xd6, 0x01,
        0xda, 0x01, 0xde, 0x01, 0xe2, 0x01, 0xe6, 0x01, 0xea, 0x01, 0xee, 0x01,
        0xf2, 0x01, 0xf6, 0x01, 0xfc, 0x01, 0x01, 0x02, 0x00, 0x00, 0x03, 0x00,
        0x06, 0x00, 0x09, 0x00, 0x0c, 0x00, 0x0f, 0x00, 0x12, 0x00, 0x15, 0x00,
        0x18, 0x00, 0x1b, 0x00, 0x20, 0x00, 0x25, 0x00, 0x2a, 0x00, 0x2f, 0x00,
        0x34, 0x00, 0x38, 0x00, 0x3d, 0x00, 0x42, 0x00, 0x47, 0x00, 0x4c, 0x00,
        0x51, 0x00, 0x57, 0x00, 0x5d, 0x00, 0x63, 0x00, 0x69, 0x00, 0x6f, 0x00,
        0x75, 0x00, 0x7b, 0x00, 0x81, 0x00, 0x87, 0x00, 0x8d, 0x00, 0x92, 0x00,
        0x97, 0x00, 0x9c, 0x00, 0xa1, 0x00, 0xa6, 0x00, 0xac, 0x00, 0xb2, 0x00,
        0xb8, 0x00, 0xbe, 0x00, 0xc4, 0x00, 0xca, 0x00, 0xd0, 0x00, 0xd6, 0x00,
        0xdc, 0x00, 0xe2, 0x00, 0xe8, 0x00, 0xee, 0x00, 0xf4, 0x00, 0xfa, 0x00,
        0x00, 0x01, 0x06, 0x01, 0x0c, 0x01, 0x12, 0x01, 0x18, 0x01, 0x1e, 0x01,
        0x22, 0x01, 0x27, 0x01, 0x2c, 0x01, 0x31, 0x01, 0x36, 0x01, 0x3b, 0x01,
        0x3f, 0x01, 0x43, 0x01, 0x47, 0x01, 0x4b, 0x01, 0x4f, 0x01, 0x55, 0x01,
        0x5b, 0x01, 0x61, 0x01, 0x67, 0x01, 0x6d, 0x01, 0x73, 0x01, 0x79, 0x01,
        0x7e, 0x01, 0x83, 0x01, 0x1b, 0x5d, 0x31, 0x31, 0x32, 0x07, 0x00, 0x1b,
        0x5d, 0x31, 0x32, 0x3b, 0x25, 0x70, 0x31, 0x25, 0x73, 0x07, 0x00, 0x1b,
        0x5b, 0x33, 0x4a, 0x00, 0x1b, 0x5d, 0x35, 0x32, 0x3b, 0x25, 0x70, 0x31,
        0x25, 0x73, 0x3b, 0x25, 0x70, 0x32, 0x25, 0x73, 0x07, 0x00, 0x1b, 0x5b,
        0x32, 0x20, 0x71, 0x00, 0x1b, 0x5b, 0x25, 0x70, 0x31, 0x25, 0x64, 0x20,
        0x71, 0x00, 0x1b, 0x5b, 0x3f, 0x31, 0x30, 0x30, 0x36, 0x3b, 0x31, 0x30,
        0x30, 0x30, 0x25, 0x3f, 0x25, 0x70, 0x31, 0x25, 0x7b, 0x31, 0x7d, 0x25,
        0x3d, 0x25, 0x74, 0x68, 0x25, 0x65, 0x6c, 0x25, 0x3b, 0x00, 0x1b, 0x5b,
        0x33, 0x3b, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x33, 0x3b, 0x34, 0x7e, 0x00,
        0x1b, 0x5b, 0x33, 0x3b, 0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x33, 0x3b, 0x36,
        0x7e, 0x00, 0x1b, 0x5b, 0x33, 0x3b, 0x37, 0x7e, 0x00, 0x1b, 0x5b, 0x31,
        0x3b, 0x32, 0x42, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x33, 0x42, 0x00, 0x1b,
        0x5b, 0x31, 0x3b, 0x34, 0x42, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35, 0x42,
        0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x36, 0x42, 0x00, 0x1b, 0x5b, 0x31, 0x3b,
        0x37, 0x42, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x33, 0x46, 0x00, 0x1b, 0x5b,
        0x31, 0x3b, 0x34, 0x46, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35, 0x46, 0x00,
        0x1b, 0x5b, 0x31, 0x3b, 0x36, 0x46, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x37,
        0x46, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x33, 0x48, 0x00, 0x1b, 0x5b, 0x31,
        0x3b, 0x34, 0x48, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35, 0x48, 0x00, 0x1b,
        0x5b, 0x31, 0x3b, 0x36, 0x48, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x37, 0x48,
        0x00, 0x1b, 0x5b, 0x32, 0x3b, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x3b,
        0x34, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x3b, 0x35, 0x7e, 0x00, 0x1b, 0x5b,
        0x32, 0x3b, 0x36, 0x7e, 0x00, 0x1b, 0x5b, 0x32, 0x3b, 0x37, 0x7e, 0x00,
        0x1b, 0x5b, 0x31, 0x3b, 0x33, 0x44, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x34,
        0x44, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35, 0x44, 0x00, 0x1b, 0x5b, 0x31,
        0x3b, 0x36, 0x44, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x37, 0x44, 0x00, 0x1b,
        0x5b, 0x36, 0x3b, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x36, 0x3b, 0x34, 0x7e,
        0x00, 0x1b, 0x5b, 0x36, 0x3b, 0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x36, 0x3b,
        0x36, 0x7e, 0x00, 0x1b, 0x5b, 0x36, 0x3b, 0x37, 0x7e, 0x00, 0x1b, 0x5b,
        0x35, 0x3b, 0x33, 0x7e, 0x00, 0x1b, 0x5b, 0x35, 0x3b, 0x34, 0x7e, 0x00,
        0x1b, 0x5b, 0x35, 0x3b, 0x35, 0x7e, 0x00, 0x1b, 0x5b, 0x35, 0x3b, 0x36,
        0x7e, 0x00, 0x1b, 0x5b, 0x35, 0x3b, 0x37, 0x7e, 0x00, 0x1b, 0x5b, 0x31,
        0x3b, 0x33, 0x43, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x34, 0x43, 0x00, 0x1b,
        0x5b, 0x31, 0x3b, 0x35, 0x43, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x36, 0x43,
        0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x37, 0x43, 0x00, 0x1b, 0x5b, 0x31, 0x3b,
        0x32, 0x41, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x33, 0x41, 0x00, 0x1b, 0x5b,
        0x31, 0x3b, 0x34, 0x41, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x35, 0x41, 0x00,
        0x1b, 0x5b, 0x31, 0x3b, 0x36, 0x41, 0x00, 0x1b, 0x5b, 0x31, 0x3b, 0x37,
        0x41, 0x00, 0x1b, 0x4f, 0x78, 0x00, 0x1b, 0x4f, 0x74, 0x00, 0x1b, 0x4f,
        0x76, 0x00, 0x1b, 0x4f, 0x72, 0x00, 0x1b, 0x4f, 0x45, 0x00, 0x1b, 0x4f,
        0x6b, 0x00, 0x1b, 0x4f, 0x6c, 0x00, 0x1b, 0x4f, 0x6f, 0x00, 0x1b, 0x4f,
        0x6e, 0x00, 0x1b, 0x4f, 0x6a, 0x00, 0x1b, 0x4f, 0x6d, 0x00, 0x1b, 0x4f,
        0x70, 0x00, 0x1b, 0x5b, 0x32, 0x39, 0x6d, 0x00, 0x1b, 0x5b, 0x39, 0x6d,
        0x00, 0x1b, 0x5b, 0x3c, 0x25, 0x69, 0x25, 0x70, 0x33, 0x25, 0x64, 0x3b,
        0x25, 0x70, 0x31, 0x25, 0x64, 0x3b, 0x25, 0x70, 0x32, 0x25, 0x64, 0x3b,
        0x25, 0x3f, 0x25, 0x70, 0x34, 0x25, 0x74, 0x4d, 0x25, 0x65, 0x6d, 0x25,
        0x3b, 0x00, 0x41, 0x58, 0x00, 0x58, 0x54, 0x00, 0x43, 0x72, 0x00, 0x43,
        0x73, 0x00, 0x45, 0x33, 0x00, 0x4d, 0x73, 0x00, 0x53, 0x65, 0x00, 0x53,
        0x73, 0x00, 0x58, 0x4d, 0x00, 0x6b, 0x44, 0x43, 0x33, 0x00, 0x6b, 0x44,
        0x43, 0x34, 0x00, 0x6b, 0x44, 0x43, 0x35, 0x00, 0x6b, 0x44, 0x43, 0x36,
        0x00, 0x6b, 0x44, 0x43, 0x37, 0x00, 0x6b, 0x44, 0x4e, 0x00, 0x6b, 0x44,
        0x4e, 0x33, 0x00, 0x6b, 0x44, 0x4e, 0x34, 0x00, 0x6b, 0x44, 0x4e, 0x35,
        0x00, 0x6b, 0x44, 0x4e, 0x36, 0x00, 0x6b, 0x44, 0x4e, 0x37, 0x00, 0x6b,
        0x45, 0x4e, 0x44, 0x33, 0x00, 0x6b, 0x45, 0x4e, 0x44, 0x34, 0x00, 0x6b,
        0x45, 0x4e, 0x44, 0x35, 0x00, 0x6b, 0x45, 0x4e, 0x44, 0x36, 0x00, 0x6b,
        0x45, 0x4e, 0x44, 0x37, 0x00, 0x6b, 0x48, 0x4f, 0x4d, 0x33, 0x00, 0x6b,
        0x48, 0x4f, 0x4d, 0x34, 0x00, 0x6b, 0x48, 0x4f, 0x4d, 0x35, 0x00, 0x6b,
        0x48, 0x4f, 0x4d, 0x36, 0x00, 0x6b, 0x48, 0x4f, 0x4d, 0x37, 0x00, 0x6b,
        0x49, 0x43, 0x33, 0x00, 0x6b, 0x49, 0x43, 0x34, 0x00, 0x6b, 0x49, 0x43,
        0x35, 0x00, 0x6b, 0x49, 0x43, 0x36, 0x00, 0x6b, 0x49, 0x43, 0x37, 0x00,
        0x6b, 0x4c, 0x46, 0x54, 0x33, 0x00, 0x6b, 0x4c, 0x46, 0x54, 0x34, 0x00,
        0x6b, 0x4c, 0x46, 0x54, 0x35, 0x00, 0x6b, 0x4c, 0x46, 0x54, 0x36, 0x00,
        0x6b, 0x4c, 0x46, 0x54, 0x37, 0x00, 0x6b, 0x4e, 0x58, 0x54, 0x33, 0x00,
        0x6b, 0x4e, 0x58, 0x54, 0x34, 0x00, 0x6b, 0x4e, 0x58, 0x54, 0x35, 0x00,
        0x6b, 0x4e, 0x58, 0x54, 0x36, 0x00, 0x6b, 0x4e, 0x58, 0x54, 0x37, 0x00,
        0x6b, 0x50, 0x52, 0x56, 0x33, 0x00, 0x6b, 0x50, 0x52, 0x56, 0x34, 0x00,
        0x6b, 0x50, 0x52, 0x56, 0x35, 0x00, 0x6b, 0x50, 0x52, 0x56, 0x36, 0x00,
        0x6b, 0x50, 0x52, 0x56, 0x37, 0x00, 0x6b, 0x52, 0x49, 0x54, 0x33, 0x00,
        0x6b, 0x52, 0x49, 0x54, 0x34, 0x00, 0x6b, 0x52, 0x49, 0x54, 0x35, 0x00,
        0x6b, 0x52, 0x49, 0x54, 0x36, 0x00, 0x6b, 0x52, 0x49, 0x54, 0x37, 0x00,
        0x6b, 0x55, 0x50, 0x00, 0x6b, 0x55, 0x50, 0x33, 0x00, 0x6b, 0x55, 0x50,
        0x34, 0x00, 0x6b, 0x55, 0x50, 0x35, 0x00, 0x6b, 0x55, 0x50, 0x36, 0x00,
        0x6b, 0x55, 0x50, 0x37, 0x00, 0x6b, 0x61, 0x32, 0x00, 0x6b, 0x62, 0x31,
        0x00, 0x6b, 0x62, 0x33, 0x00, 0x6b, 0x63, 0x32, 0x00, 0x6b, 0x70, 0x35,
        0x00, 0x6b, 0x70, 0x41, 0x44, 0x44, 0x00, 0x6b, 0x70, 0x43, 0x4d, 0x41,
        0x00, 0x6b, 0x70, 0x44, 0x49, 0x56, 0x00, 0x6b, 0x70, 0x44, 0x4f, 0x54,
        0x00, 0x6b, 0x70, 0x4d, 0x55, 0x4c, 0x00, 0x6b, 0x70, 0x53, 0x55, 0x42,
        0x00, 0x6b, 0x70, 0x5a, 0x52, 0x4f, 0x00, 0x72, 0x6d, 0x78, 0x78, 0x00,
        0x73, 0x6d, 0x78, 0x78, 0x00, 0x78, 0x6d, 0x00]

    xterm_extensions =
        [:AX, :E3, :XM, :XT, :enter_strikeout_mode, :exit_strikeout_mode, :ka2,
         :kb1, :kb3, :kc2, :key_alt_control_delete_character,
         :key_alt_control_down_cursor, :key_alt_control_end,
         :key_alt_control_home, :key_alt_control_insert_character,
         :key_alt_control_left_cursor, :key_alt_control_next,
         :key_alt_control_previous, :key_alt_control_right_cursor,
         :key_alt_control_up_cursor, :key_alt_delete_character,
         :key_alt_down_cursor, :key_alt_end, :key_alt_home,
         :key_alt_insert_character, :key_alt_left_cursor, :key_alt_next,
         :key_alt_previous, :key_alt_right_cursor, :key_alt_up_cursor,
         :key_control_delete_character, :key_control_down_cursor,
         :key_control_end, :key_control_home, :key_control_insert_character,
         :key_control_left_cursor, :key_control_next, :key_control_previous,
         :key_control_right_cursor, :key_control_up_cursor,
         :key_shift_alt_delete_character, :key_shift_alt_down_cursor,
         :key_shift_alt_end, :key_shift_alt_home,
         :key_shift_alt_insert_character, :key_shift_alt_left_cursor,
         :key_shift_alt_next, :key_shift_alt_previous,
         :key_shift_alt_right_cursor, :key_shift_alt_up_cursor,
         :key_shift_control_delete_character, :key_shift_control_down_cursor,
         :key_shift_control_end, :key_shift_control_home,
         :key_shift_control_insert_character, :key_shift_control_left_cursor,
         :key_shift_control_next, :key_shift_control_previous,
         :key_shift_control_right_cursor, :key_shift_control_up_cursor,
         :key_shift_down_cursor, :key_shift_up_cursor, :kp5, :kpADD, :kpCMA,
         :kpDIV, :kpDOT, :kpMUL, :kpSUB, :kpZRO, :reset_cursor_color,
         :reset_cursor_style, :set_cursor_color, :set_cursor_style,
         :set_host_clipboard, :xm]

    xterm_capabilities = Dict{Symbol, Union{Bool, Int, String}}(
        :AX => true,
        :Cr => "\e]112\a",
        :Cs => "\e]12;%p1%s\a",
        :E3 => "\e[3J",
        :Ms => "\e]52;%p1%s;%p2%s\a",
        :OTbs => true,
        :Se => "\e[2 q",
        :Ss => "\e[%p1%d q",
        :XM => "\e[?1006;1000%?%p1%{1}%=%th%el%;",
        :XT => true,
        :acs_chars => "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
        :acsc => "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~",
        :am => true,
        :auto_left_margin => false,
        :auto_right_margin => true,
        :back_color_erase => true,
        :back_tab => "\e[Z",
        :backspaces_with_bs => true,
        :bce => true,
        :bel => "\a",
        :bell => "\a",
        :blink => "\e[5m",
        :bold => "\e[1m",
        :bw => false,
        :can_change => false,
        :carriage_return => "\r",
        :cbt => "\e[Z",
        :ccc => false,
        :ceol_standout_glitch => false,
        :change_scroll_region => "\e[%i%p1%d;%p2%dr",
        :chts => false,
        :civis => "\e[?25l",
        :clear => "\e[H\e[2J",
        :clear_all_tabs => "\e[3g",
        :clear_margins => "\e[?69l",
        :clear_screen => "\e[H\e[2J",
        :clr_bol => "\e[1K",
        :clr_eol => "\e[K",
        :clr_eos => "\e[J",
        :cnorm => "\e[?12l\e[?25h",
        :col_addr_glitch => false,
        :colors => 8,
        :cols => 80,
        :column_address => "\e[%i%p1%dG",
        :columns => 80,
        :cpi_changes_res => false,
        :cpix => false,
        :cr => "\r",
        :cr_cancels_micro_mode => false,
        :crxm => false,
        :csr => "\e[%i%p1%d;%p2%dr",
        :cub => "\e[%p1%dD",
        :cub1 => "\b",
        :cud => "\e[%p1%dB",
        :cud1 => "\n",
        :cuf => "\e[%p1%dC",
        :cuf1 => "\e[C",
        :cup => "\e[%i%p1%d;%p2%dH",
        :cursor_address => "\e[%i%p1%d;%p2%dH",
        :cursor_down => "\n",
        :cursor_home => "\e[H",
        :cursor_invisible => "\e[?25l",
        :cursor_left => "\b",
        :cursor_normal => "\e[?12l\e[?25h",
        :cursor_right => "\e[C",
        :cursor_up => "\e[A",
        :cursor_visible => "\e[?12;25h",
        :cuu => "\e[%p1%dA",
        :cuu1 => "\e[A",
        :cvvis => "\e[?12;25h",
        :da => false,
        :daisy => false,
        :db => false,
        :dch => "\e[%p1%dP",
        :dch1 => "\e[P",
        :delete_character => "\e[P",
        :delete_line => "\e[M",
        :dest_tabs_magic_smso => false,
        :dim => "\e[2m",
        :dl => "\e[%p1%dM",
        :dl1 => "\e[M",
        :eat_newline_glitch => true,
        :ech => "\e[%p1%dX",
        :ed => "\e[J",
        :el => "\e[K",
        :el1 => "\e[1K",
        :enter_alt_charset_mode => "\e(0",
        :enter_am_mode => "\e[?7h",
        :enter_blink_mode => "\e[5m",
        :enter_bold_mode => "\e[1m",
        :enter_ca_mode => "\e[?1049h\e[22;0;0t",
        :enter_dim_mode => "\e[2m",
        :enter_insert_mode => "\e[4h",
        :enter_italics_mode => "\e[3m",
        :enter_reverse_mode => "\e[7m",
        :enter_secure_mode => "\e[8m",
        :enter_standout_mode => "\e[7m",
        :enter_underline_mode => "\e[4m",
        :eo => false,
        :erase_chars => "\e[%p1%dX",
        :erase_overstrike => false,
        :eslok => false,
        :exit_alt_charset_mode => "\e(B",
        :exit_am_mode => "\e[?7l",
        :exit_attribute_mode => "\e(B\e[m",
        :exit_ca_mode => "\e[?1049l\e[23;0;0t",
        :exit_insert_mode => "\e[4l",
        :exit_italics_mode => "\e[23m",
        :exit_standout_mode => "\e[27m",
        :exit_underline_mode => "\e[24m",
        :flash => "\e[?5h\$<100/>\e[?5l",
        :flash_screen => "\e[?5h\$<100/>\e[?5l",
        :generic_type => false,
        :gn => false,
        :hard_copy => false,
        :hard_cursor => false,
        :has_meta_key => true,
        :has_print_wheel => false,
        :has_status_line => false,
        :hc => false,
        :hls => false,
        :home => "\e[H",
        :hpa => "\e[%i%p1%dG",
        :hs => false,
        :ht => "\t",
        :hts => "\eH",
        :hue_lightness_saturation => false,
        :hz => false,
        :ich => "\e[%p1%d@",
        :il => "\e[%p1%dL",
        :il1 => "\e[L",
        :in => false,
        :ind => "\n",
        :indn => "\e[%p1%dS",
        :init_2string => "\e[!p\e[?3;4l\e[4l\e>",
        :init_tabs => 8,
        :insert_line => "\e[L",
        :insert_null_glitch => false,
        :invis => "\e[8m",
        :is2 => "\e[!p\e[?3;4l\e[4l\e>",
        :it => 8,
        :kDC => "\e[3;2~",
        :kDC3 => "\e[3;3~",
        :kDC4 => "\e[3;4~",
        :kDC5 => "\e[3;5~",
        :kDC6 => "\e[3;6~",
        :kDC7 => "\e[3;7~",
        :kDN => "\e[1;2B",
        :kDN3 => "\e[1;3B",
        :kDN4 => "\e[1;4B",
        :kDN5 => "\e[1;5B",
        :kDN6 => "\e[1;6B",
        :kDN7 => "\e[1;7B",
        :kEND => "\e[1;2F",
        :kEND3 => "\e[1;3F",
        :kEND4 => "\e[1;4F",
        :kEND5 => "\e[1;5F",
        :kEND6 => "\e[1;6F",
        :kEND7 => "\e[1;7F",
        :kHOM => "\e[1;2H",
        :kHOM3 => "\e[1;3H",
        :kHOM4 => "\e[1;4H",
        :kHOM5 => "\e[1;5H",
        :kHOM6 => "\e[1;6H",
        :kHOM7 => "\e[1;7H",
        :kIC => "\e[2;2~",
        :kIC3 => "\e[2;3~",
        :kIC4 => "\e[2;4~",
        :kIC5 => "\e[2;5~",
        :kIC6 => "\e[2;6~",
        :kIC7 => "\e[2;7~",
        :kLFT => "\e[1;2D",
        :kLFT3 => "\e[1;3D",
        :kLFT4 => "\e[1;4D",
        :kLFT5 => "\e[1;5D",
        :kLFT6 => "\e[1;6D",
        :kLFT7 => "\e[1;7D",
        :kNXT => "\e[6;2~",
        :kNXT3 => "\e[6;3~",
        :kNXT4 => "\e[6;4~",
        :kNXT5 => "\e[6;5~",
        :kNXT6 => "\e[6;6~",
        :kNXT7 => "\e[6;7~",
        :kPRV => "\e[5;2~",
        :kPRV3 => "\e[5;3~",
        :kPRV4 => "\e[5;4~",
        :kPRV5 => "\e[5;5~",
        :kPRV6 => "\e[5;6~",
        :kPRV7 => "\e[5;7~",
        :kRIT => "\e[1;2C",
        :kRIT3 => "\e[1;3C",
        :kRIT4 => "\e[1;4C",
        :kRIT5 => "\e[1;5C",
        :kRIT6 => "\e[1;6C",
        :kRIT7 => "\e[1;7C",
        :kUP => "\e[1;2A",
        :kUP3 => "\e[1;3A",
        :kUP4 => "\e[1;4A",
        :kUP5 => "\e[1;5A",
        :kUP6 => "\e[1;6A",
        :kUP7 => "\e[1;7A",
        :ka1 => "\eOw",
        :ka2 => "\eOx",
        :ka3 => "\eOy",
        :kb1 => "\eOt",
        :kb2 => "\eOu",
        :kb3 => "\eOv",
        :kbs => "\b",
        :kc1 => "\eOq",
        :kc2 => "\eOr",
        :kc3 => "\eOs",
        :kcbt => "\e[Z",
        :kcub1 => "\eOD",
        :kcud1 => "\eOB",
        :kcuf1 => "\eOC",
        :kcuu1 => "\eOA",
        :kdch1 => "\e[3~",
        :kend => "\eOF",
        :kent => "\eOM",
        :key_a1 => "\eOw",
        :key_a3 => "\eOy",
        :key_b2 => "\eOu",
        :key_backspace => "\b",
        :key_btab => "\e[Z",
        :key_c1 => "\eOq",
        :key_c3 => "\eOs",
        :key_dc => "\e[3~",
        :key_down => "\eOB",
        :key_end => "\eOF",
        :key_enter => "\eOM",
        :key_f1 => "\eOP",
        :key_f10 => "\e[21~",
        :key_f11 => "\e[23~",
        :key_f12 => "\e[24~",
        :key_f13 => "\e[1;2P",
        :key_f14 => "\e[1;2Q",
        :key_f15 => "\e[1;2R",
        :key_f16 => "\e[1;2S",
        :key_f17 => "\e[15;2~",
        :key_f18 => "\e[17;2~",
        :key_f19 => "\e[18;2~",
        :key_f2 => "\eOQ",
        :key_f20 => "\e[19;2~",
        :key_f21 => "\e[20;2~",
        :key_f22 => "\e[21;2~",
        :key_f23 => "\e[23;2~",
        :key_f24 => "\e[24;2~",
        :key_f25 => "\e[1;5P",
        :key_f26 => "\e[1;5Q",
        :key_f27 => "\e[1;5R",
        :key_f28 => "\e[1;5S",
        :key_f29 => "\e[15;5~",
        :key_f3 => "\eOR",
        :key_f30 => "\e[17;5~",
        :key_f31 => "\e[18;5~",
        :key_f32 => "\e[19;5~",
        :key_f33 => "\e[20;5~",
        :key_f34 => "\e[21;5~",
        :key_f35 => "\e[23;5~",
        :key_f36 => "\e[24;5~",
        :key_f37 => "\e[1;6P",
        :key_f38 => "\e[1;6Q",
        :key_f39 => "\e[1;6R",
        :key_f4 => "\eOS",
        :key_f40 => "\e[1;6S",
        :key_f41 => "\e[15;6~",
        :key_f42 => "\e[17;6~",
        :key_f43 => "\e[18;6~",
        :key_f44 => "\e[19;6~",
        :key_f45 => "\e[20;6~",
        :key_f46 => "\e[21;6~",
        :key_f47 => "\e[23;6~",
        :key_f48 => "\e[24;6~",
        :key_f49 => "\e[1;3P",
        :key_f5 => "\e[15~",
        :key_f50 => "\e[1;3Q",
        :key_f51 => "\e[1;3R",
        :key_f52 => "\e[1;3S",
        :key_f53 => "\e[15;3~",
        :key_f54 => "\e[17;3~",
        :key_f55 => "\e[18;3~",
        :key_f56 => "\e[19;3~",
        :key_f57 => "\e[20;3~",
        :key_f58 => "\e[21;3~",
        :key_f59 => "\e[23;3~",
        :key_f6 => "\e[17~",
        :key_f60 => "\e[24;3~",
        :key_f61 => "\e[1;4P",
        :key_f62 => "\e[1;4Q",
        :key_f63 => "\e[1;4R",
        :key_f7 => "\e[18~",
        :key_f8 => "\e[19~",
        :key_f9 => "\e[20~",
        :key_home => "\eOH",
        :key_ic => "\e[2~",
        :key_left => "\eOD",
        :key_mouse => "\e[<",
        :key_npage => "\e[6~",
        :key_ppage => "\e[5~",
        :key_right => "\eOC",
        :key_sdc => "\e[3;2~",
        :key_send => "\e[1;2F",
        :key_sf => "\e[1;2B",
        :key_shome => "\e[1;2H",
        :key_sic => "\e[2;2~",
        :key_sleft => "\e[1;2D",
        :key_snext => "\e[6;2~",
        :key_sprevious => "\e[5;2~",
        :key_sr => "\e[1;2A",
        :key_sright => "\e[1;2C",
        :key_up => "\eOA",
        :keypad_local => "\e[?1l\e>",
        :keypad_xmit => "\e[?1h\e=",
        :kf1 => "\eOP",
        :kf10 => "\e[21~",
        :kf11 => "\e[23~",
        :kf12 => "\e[24~",
        :kf13 => "\e[1;2P",
        :kf14 => "\e[1;2Q",
        :kf15 => "\e[1;2R",
        :kf16 => "\e[1;2S",
        :kf17 => "\e[15;2~",
        :kf18 => "\e[17;2~",
        :kf19 => "\e[18;2~",
        :kf2 => "\eOQ",
        :kf20 => "\e[19;2~",
        :kf21 => "\e[20;2~",
        :kf22 => "\e[21;2~",
        :kf23 => "\e[23;2~",
        :kf24 => "\e[24;2~",
        :kf25 => "\e[1;5P",
        :kf26 => "\e[1;5Q",
        :kf27 => "\e[1;5R",
        :kf28 => "\e[1;5S",
        :kf29 => "\e[15;5~",
        :kf3 => "\eOR",
        :kf30 => "\e[17;5~",
        :kf31 => "\e[18;5~",
        :kf32 => "\e[19;5~",
        :kf33 => "\e[20;5~",
        :kf34 => "\e[21;5~",
        :kf35 => "\e[23;5~",
        :kf36 => "\e[24;5~",
        :kf37 => "\e[1;6P",
        :kf38 => "\e[1;6Q",
        :kf39 => "\e[1;6R",
        :kf4 => "\eOS",
        :kf40 => "\e[1;6S",
        :kf41 => "\e[15;6~",
        :kf42 => "\e[17;6~",
        :kf43 => "\e[18;6~",
        :kf44 => "\e[19;6~",
        :kf45 => "\e[20;6~",
        :kf46 => "\e[21;6~",
        :kf47 => "\e[23;6~",
        :kf48 => "\e[24;6~",
        :kf49 => "\e[1;3P",
        :kf5 => "\e[15~",
        :kf50 => "\e[1;3Q",
        :kf51 => "\e[1;3R",
        :kf52 => "\e[1;3S",
        :kf53 => "\e[15;3~",
        :kf54 => "\e[17;3~",
        :kf55 => "\e[18;3~",
        :kf56 => "\e[19;3~",
        :kf57 => "\e[20;3~",
        :kf58 => "\e[21;3~",
        :kf59 => "\e[23;3~",
        :kf6 => "\e[17~",
        :kf60 => "\e[24;3~",
        :kf61 => "\e[1;4P",
        :kf62 => "\e[1;4Q",
        :kf63 => "\e[1;4R",
        :kf7 => "\e[18~",
        :kf8 => "\e[19~",
        :kf9 => "\e[20~",
        :khome => "\eOH",
        :kich1 => "\e[2~",
        :kind => "\e[1;2B",
        :km => true,
        :kmous => "\e[<",
        :knp => "\e[6~",
        :kp5 => "\eOE",
        :kpADD => "\eOk",
        :kpCMA => "\eOl",
        :kpDIV => "\eOo",
        :kpDOT => "\eOn",
        :kpMUL => "\eOj",
        :kpSUB => "\eOm",
        :kpZRO => "\eOp",
        :kpp => "\e[5~",
        :kri => "\e[1;2A",
        :lines => 24,
        :lpi_changes_res => false,
        :lpix => false,
        :max_colors => 8,
        :max_pairs => 64,
        :mc0 => "\e[i",
        :mc4 => "\e[4i",
        :mc5 => "\e[5i",
        :mc5i => true,
        :meml => "\el",
        :memory_above => false,
        :memory_below => false,
        :memory_lock => "\el",
        :memory_unlock => "\em",
        :memu => "\em",
        :meta_off => "\e[?1034l",
        :meta_on => "\e[?1034h",
        :mgc => "\e[?69l",
        :mir => true,
        :move_insert_mode => true,
        :move_standout_mode => true,
        :msgr => true,
        :ndscr => false,
        :needs_xon_xoff => false,
        :no_esc_ctlc => false,
        :no_pad_char => true,
        :non_dest_scroll_region => false,
        :non_rev_rmcup => false,
        :npc => true,
        :nrrmc => false,
        :nxon => false,
        :op => "\e[39;49m",
        :orig_pair => "\e[39;49m",
        :os => false,
        :over_strike => false,
        :pairs => 64,
        :parm_dch => "\e[%p1%dP",
        :parm_delete_line => "\e[%p1%dM",
        :parm_down_cursor => "\e[%p1%dB",
        :parm_ich => "\e[%p1%d@",
        :parm_index => "\e[%p1%dS",
        :parm_insert_line => "\e[%p1%dL",
        :parm_left_cursor => "\e[%p1%dD",
        :parm_right_cursor => "\e[%p1%dC",
        :parm_rindex => "\e[%p1%dT",
        :parm_up_cursor => "\e[%p1%dA",
        :print_screen => "\e[i",
        :prtr_off => "\e[4i",
        :prtr_on => "\e[5i",
        :prtr_silent => true,
        :rc => "\e8",
        :rep => "%p1%c\e[%p2%{1}%-%db",
        :repeat_char => "%p1%c\e[%p2%{1}%-%db",
        :reset_1string => "\ec",
        :reset_2string => "\e[!p\e[?3;4l\e[4l\e>",
        :restore_cursor => "\e8",
        :rev => "\e[7m",
        :ri => "\eM",
        :rin => "\e[%p1%dT",
        :ritm => "\e[23m",
        :rmacs => "\e(B",
        :rmam => "\e[?7l",
        :rmcup => "\e[?1049l\e[23;0;0t",
        :rmir => "\e[4l",
        :rmkx => "\e[?1l\e>",
        :rmm => "\e[?1034l",
        :rmso => "\e[27m",
        :rmul => "\e[24m",
        :rmxx => "\e[29m",
        :row_addr_glitch => false,
        :row_address => "\e[%i%p1%dd",
        :rs1 => "\ec",
        :rs2 => "\e[!p\e[?3;4l\e[4l\e>",
        :sam => false,
        :save_cursor => "\e7",
        :sc => "\e7",
        :scroll_forward => "\n",
        :scroll_reverse => "\eM",
        :semi_auto_right_margin => false,
        :set_a_background => "\e[4%p1%dm",
        :set_a_foreground => "\e[3%p1%dm",
        :set_attributes => "%?%p9%t\e(0%e\e(B%;\e[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m",
        :set_background => "\e[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m",
        :set_foreground => "\e[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m",
        :set_lr_margin => "\e[?69h\e[%i%p1%d;%p2%ds",
        :set_tab => "\eH",
        :setab => "\e[4%p1%dm",
        :setaf => "\e[3%p1%dm",
        :setb => "\e[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m",
        :setf => "\e[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m",
        :sgr => "%?%p9%t\e(0%e\e(B%;\e[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m",
        :sgr0 => "\e(B\e[m",
        :sitm => "\e[3m",
        :smacs => "\e(0",
        :smam => "\e[?7h",
        :smcup => "\e[?1049h\e[22;0;0t",
        :smglr => "\e[?69h\e[%i%p1%d;%p2%ds",
        :smir => "\e[4h",
        :smkx => "\e[?1h\e=",
        :smm => "\e[?1034h",
        :smso => "\e[7m",
        :smul => "\e[4m",
        :smxx => "\e[9m",
        :status_line_esc_ok => false,
        :tab => "\t",
        :tbc => "\e[3g",
        :tilde_glitch => false,
        :transparent_underline => false,
        :u6 => "\e[%i%d;%dR",
        :u7 => "\e[6n",
        :u8 => "\e[?%[;0123456789]c",
        :u9 => "\e[c",
        :ul => false,
        :user6 => "\e[%i%d;%dR",
        :user7 => "\e[6n",
        :user8 => "\e[?%[;0123456789]c",
        :user9 => "\e[c",
        :vpa => "\e[%i%p1%dd",
        :xenl => true,
        :xhp => false,
        :xhpa => false,
        :xm => "\e[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;",
        :xon => false,
        :xon_xoff => false,
        :xsb => false,
        :xt => false,
        :xvpa => false)

@testset "terminfo" begin
    dumb = Base.TermInfo(read(IOBuffer(dumb_terminfo), Base.TermInfoRaw))
    @test dumb.names == ["dumb", "80-column dumb tty"]
    @test length(dumb.flags) == 2
    @test length(dumb.numbers) == 1
    @test length(dumb.strings) == 4
    @test isnothing(dumb.extensions)
    for (key, value) in dumb_capabilities
        @test dumb[key] == value
    end

    xterm = Base.TermInfo(read(IOBuffer(xterm_terminfo), Base.TermInfoRaw))
    @test xterm.names == ["xterm", "xterm terminal emulator (X Window System)"]
    @test length(xterm.flags) == 40
    @test length(xterm.numbers) == 15
    @test length(xterm.strings) == 253
    @test sort(xterm.extensions |> collect) == sort(xterm_extensions)
    for (key, value) in xterm_capabilities
        @test xterm[key] == value
    end
end

end
back to top