###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

# BRLTTY Text Table - Spanish

# the standard representations for the letters of the Latin alphabet
include ltr-latin.tti

# generated by ttbtest: charset=iso-8859-1
char \x00	(    5 78)  # 00 ⣐   [NULL]
char \x01	( 2    78)  # 01 ⣂   [START OF HEADING]
char \x02	(12    78)  # 02 ⣃   [START OF TEXT]
char \x03	(1  4  78)  # 03 ⣉   [END OF TEXT]
char \x04	(1  45 78)  # 04 ⣙   [END OF TRANSMISSION]
char \x05	( 2   678)  # 05 ⣢   [ENQUIRY]
char \x06	(12 4  78)  # 06 ⣋   [ACKNOWLEDGE]
char \x07	(12 45 78)  # 07 ⣛   [BELL]
char \x08	(12  5 78)  # 08 ⣓   [BACKSPACE]
char \x09	(  3 5 78)  # 09 ⣔   [CHARACTER TABULATION]
char \x0A	( 2 45 78)  # 0A ⣚   [LINE FEED (LF)]
char \x0B	(1 3   78)  # 0B ⣅   [LINE TABULATION]
char \x0C	(123   78)  # 0C ⣇   [FORM FEED (FF)]
char \x0D	(1 34  78)  # 0D ⣍   [CARRIAGE RETURN (CR)]
char \x0E	(1 345 78)  # 0E ⣝   [SHIFT OUT]
char \x0F	( 23  678)  # 0F ⣦   [SHIFT IN]
char \x10	(1234  78)  # 10 ⣏   [DATA LINK ESCAPE]
char \x11	(12345 78)  # 11 ⣟   [DEVICE CONTROL ONE]
char \x12	(123 5 78)  # 12 ⣗   [DEVICE CONTROL TWO]
char \x13	( 234  78)  # 13 ⣎   [DEVICE CONTROL THREE]
char \x14	( 2345 78)  # 14 ⣞   [DEVICE CONTROL FOUR]
char \x15	(  3 5678)  # 15 ⣴   [NEGATIVE ACKNOWLEDGE]
char \x16	(123  678)  # 16 ⣧   [SYNCHRONOUS IDLE]
char \x17	( 2 45678)  # 17 ⣺   [END OF TRANSMISSION BLOCK]
char \x18	(1 34 678)  # 18 ⣭   [CANCEL]
char \x19	(1 345678)  # 19 ⣽   [END OF MEDIUM]
char \x1A	(1 3 5678)  # 1A ⣵   [SUBSTITUTE]
char \x1B	(  345678)  # 1B ⣼   [ESCAPE]
char \x1C	(12345678)  # 1C ⣿   [INFORMATION SEPARATOR FOUR]
char \x1D	(   4 678)  # 1D ⣨   [INFORMATION SEPARATOR THREE]
char \x1E	(   45 78)  # 1E ⣘   [INFORMATION SEPARATOR TWO]
char \x1F	(     678)  # 1F ⣠   [INFORMATION SEPARATOR ONE]
char \x20	(        )  # 20 ⠀   [SPACE]
char \x21	( 23 5 7 )  # 21 ⡖ ! [EXCLAMATION MARK]
char \x22	(    56  )  # 22 ⠰ " [QUOTATION MARK]
char \x23	(  3456  )  # 23 ⠼ # [NUMBER SIGN]
char \x24	(1234 67 )  # 24 ⡯ $ [DOLLAR SIGN]
char \x25	(   456  )  # 25 ⠸ % [PERCENT SIGN]
char \x26	(1234 6  )  # 26 ⠯ & [AMPERSAND]
char \x27	(   4    )  # 27 ⠈ ' [APOSTROPHE]
char \x28	(12   6 8)  # 28 ⢣ ( [LEFT PARENTHESIS]
char \x29	(  345 7 )  # 29 ⡜ ) [RIGHT PARENTHESIS]
char \x2A	( 2  56  )  # 2A ⠲ * [ASTERISK]
char \x2B	( 23 5   )  # 2B ⠖ + [PLUS SIGN]
char \x2C	( 2      )  # 2C ⠂ , [COMMA]
char \x2D	(  3  6  )  # 2D ⠤ - [HYPHEN-MINUS]
char \x2E	(  3     )  # 2E ⠄ . [FULL STOP]
char \x2F	(  34  78)  # 2F ⣌ / [SOLIDUS]
char \x30	(  34 678)  # 30 ⣬ 0 [DIGIT ZERO]
char \x31	(1    6  )  # 31 ⠡ 1 [DIGIT ONE]
char \x32	(12   6  )  # 32 ⠣ 2 [DIGIT TWO]
char \x33	(1  4 6  )  # 33 ⠩ 3 [DIGIT THREE]
char \x34	(1  456  )  # 34 ⠹ 4 [DIGIT FOUR]
char \x35	(1   56  )  # 35 ⠱ 5 [DIGIT FIVE]
char \x36	(12 4 6  )  # 36 ⠫ 6 [DIGIT SIX]
char \x37	(12 456  )  # 37 ⠻ 7 [DIGIT SEVEN]
char \x38	(12  56  )  # 38 ⠳ 8 [DIGIT EIGHT]
char \x39	( 2 4 6  )  # 39 ⠪ 9 [DIGIT NINE]
char \x3A	( 2  5   )  # 3A ⠒ : [COLON]
char \x3B	( 23     )  # 3B ⠆ ; [SEMICOLON]
char \x3C	( 23  6  )  # 3C ⠦ < [LESS-THAN SIGN]
char \x3D	( 23 56  )  # 3D ⠶ = [EQUALS SIGN]
char \x3E	(  3 56  )  # 3E ⠴ > [GREATER-THAN SIGN]
char \x3F	( 2   6  )  # 3F ⠢ ? [QUESTION MARK]
char \x40	(    5   )  # 40 ⠐ @ [COMMERCIAL AT]
# uppercase Latin alphabet  # 41-5A
char \x5B	( 23  67 )  # 5B ⡦ [ [LEFT SQUARE BRACKET]
char \x5C	(123456  )  # 5C ⠿ \ [REVERSE SOLIDUS]
char \x5D	(  3 56 8)  # 5D ⢴ ] [RIGHT SQUARE BRACKET]
char \x5E	(   45   )  # 5E ⠘ ^ [CIRCUMFLEX ACCENT]
char \x5F	(     6  )  # 5F ⠠ _ [LOW LINE]
char \x60	(    5  8)  # 60 ⢐ ` [GRAVE ACCENT]
# lowercase Latin alphabet  # 61-7A
char \x7B	(   4 6  )  # 7B ⠨ { [LEFT CURLY BRACKET]
char \x7C	(   456 8)  # 7C ⢸ | [VERTICAL LINE]
char \x7D	(  3 5   )  # 7D ⠔ } [RIGHT CURLY BRACKET]
char \x7E	(    5 7 )  # 7E ⡐ ~ [TILDE]
char \x7F	(      7 )  # 7F ⡀   [DELETE]
char \xA1	( 23 5 78)  # A1 ⣖ ¡ [INVERTED EXCLAMATION MARK]
char \xA2	(12   678)  # A2 ⣣ ¢ [CENT SIGN]
char \xA3	( 23   78)  # A3 ⣆ £ [POUND SIGN]
char \xA4	( 2  567 )  # A4 ⡲ ¤ [CURRENCY SIGN]
char \xA5	(1  45678)  # A5 ⣹ ¥ [YEN SIGN]
char \xA6	(   4  78)  # A6 ⣈ ¦ [BROKEN BAR]
char \xA7	(1    67 )  # A7 ⡡ § [SECTION SIGN]
char \xA8	( 2   6 8)  # A8 ⢢ ¨ [DIAERESIS]
char \xA9	( 23 567 )  # A9 ⡶ © [COPYRIGHT SIGN]
char \xAA	( 23 56 8)  # AA ⢶ ª [FEMININE ORDINAL INDICATOR]
char \xAB	( 23    8)  # AB ⢆ « [LEFT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xAC	( 2  5 7 )  # AC ⡒ ¬ [NOT SIGN]
char \xAD	( 23 5  8)  # AD ⢖ ­ [SOFT HYPHEN]
char \xAE	( 23  6 8)  # AE ⢦ ® [REGISTERED SIGN]
char \xAF	( 2 456 8)  # AF ⢺ ¯ [MACRON]
char \xB0	(       8)  # B0 ⢀ ° [DEGREE SIGN]
char \xB1	(12 4 67 )  # B1 ⡫ ± [PLUS-MINUS SIGN]
char \xB2	(   4  7 )  # B2 ⡈ ² [SUPERSCRIPT TWO]
char \xB3	(    56 8)  # B3 ⢰ ³ [SUPERSCRIPT THREE]
char \xB4	(   4 67 )  # B4 ⡨ ´ [ACUTE ACCENT]
char \xB5	(1 34 6 8)  # B5 ⢭ µ [MICRO SIGN]
char \xB6	(1  4567 )  # B6 ⡹ ¶ [PILCROW SIGN]
char \xB7	(1  4 678)  # B7 ⣩ · [MIDDLE DOT]
char \xB8	(1234567 )  # B8 ⡿ ¸ [CEDILLA]
char \xB9	( 23   7 )  # B9 ⡆ ¹ [SUPERSCRIPT ONE]
char \xBA	(    5678)  # BA ⣰ º [MASCULINE ORDINAL INDICATOR]
char \xBB	(    567 )  # BB ⡰ » [RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xBC	(1  4 67 )  # BC ⡩ ¼ [VULGAR FRACTION ONE QUARTER]
char \xBD	(   4 6 8)  # BD ⢨ ½ [VULGAR FRACTION ONE HALF]
char \xBE	(   4   8)  # BE ⢈ ¾ [VULGAR FRACTION THREE QUARTERS]
char \xBF	( 2   67 )  # BF ⡢ ¿ [INVERTED QUESTION MARK]
char \xC0	(123 5678)  # C0 ⣷ À [LATIN CAPITAL LETTER A WITH GRAVE]
char \xC1	(123 567 )  # C1 ⡷ Á [LATIN CAPITAL LETTER A WITH ACUTE]
char \xC2	(1     78)  # C2 ⣁ Â [LATIN CAPITAL LETTER A WITH CIRCUMFLEX]
char \xC3	(  3 567 )  # C3 ⡴ Ã [LATIN CAPITAL LETTER A WITH TILDE]
char \xC4	(  345 78)  # C4 ⣜ Ä [LATIN CAPITAL LETTER A WITH DIAERESIS]
char \xC5	(123  6 8)  # C5 ⢧ Å [LATIN CAPITAL LETTER A WITH RING ABOVE]
char \xC6	(  3    8)  # C6 ⢄ Æ [LATIN CAPITAL LETTER AE]
char \xC7	(1234 678)  # C7 ⣯ Ç [LATIN CAPITAL LETTER C WITH CEDILLA]
char \xC8	( 234 678)  # C8 ⣮ È [LATIN CAPITAL LETTER E WITH GRAVE]
char \xC9	( 234 67 )  # C9 ⡮ É [LATIN CAPITAL LETTER E WITH ACUTE]
char \xCA	(1   5 78)  # CA ⣑ Ê [LATIN CAPITAL LETTER E WITH CIRCUMFLEX]
char \xCB	(12 4 678)  # CB ⣫ Ë [LATIN CAPITAL LETTER E WITH DIAERESIS]
char \xCC	(  345   )  # CC ⠜ Ì [LATIN CAPITAL LETTER I WITH GRAVE]
char \xCD	(  34  7 )  # CD ⡌ Í [LATIN CAPITAL LETTER I WITH ACUTE]
char \xCE	( 2 4  78)  # CE ⣊ Î [LATIN CAPITAL LETTER I WITH CIRCUMFLEX]
char \xCF	(12 45678)  # CF ⣻ Ï [LATIN CAPITAL LETTER I WITH DIAERESIS]
char \xD0	(1 345  8)  # D0 ⢝ Ð [LATIN CAPITAL LETTER ETH]
char \xD1	(12 4567 )  # D1 ⡻ Ñ [LATIN CAPITAL LETTER N WITH TILDE]
char \xD2	( 2 45  8)  # D2 ⢚ Ò [LATIN CAPITAL LETTER O WITH GRAVE]
char \xD3	(  34 67 )  # D3 ⡬ Ó [LATIN CAPITAL LETTER O WITH ACUTE]
char \xD4	(1 3 5 78)  # D4 ⣕ Ô [LATIN CAPITAL LETTER O WITH CIRCUMFLEX]
char \xD5	(12 45  8)  # D5 ⢛ Õ [LATIN CAPITAL LETTER O WITH TILDE]
char \xD6	( 2 4 678)  # D6 ⣪ Ö [LATIN CAPITAL LETTER O WITH DIAERESIS]
char \xD7	(1    678)  # D7 ⣡ × [MULTIPLICATION SIGN]
char \xD8	(  34567 )  # D8 ⡼ Ø [LATIN CAPITAL LETTER O WITH STROKE]
char \xD9	( 2345678)  # D9 ⣾ Ù [LATIN CAPITAL LETTER U WITH GRAVE]
char \xDA	( 234567 )  # DA ⡾ Ú [LATIN CAPITAL LETTER U WITH ACUTE]
char \xDB	(1 3  678)  # DB ⣥ Û [LATIN CAPITAL LETTER U WITH CIRCUMFLEX]
char \xDC	(12  5678)  # DC ⣳ Ü [LATIN CAPITAL LETTER U WITH DIAERESIS]
char \xDD	(1   567 )  # DD ⡱ Ý [LATIN CAPITAL LETTER Y WITH ACUTE]
char \xDE	(12345  8)  # DE ⢟ Þ [LATIN CAPITAL LETTER THORN]
char \xDF	(12     8)  # DF ⢃ ß [LATIN SMALL LETTER SHARP S]
char \xE0	(123 56 8)  # E0 ⢷ à [LATIN SMALL LETTER A WITH GRAVE]
char \xE1	(123 56  )  # E1 ⠷ á [LATIN SMALL LETTER A WITH ACUTE]
char \xE2	(1      8)  # E2 ⢁ â [LATIN SMALL LETTER A WITH CIRCUMFLEX]
char \xE3	(1    6 8)  # E3 ⢡ ã [LATIN SMALL LETTER A WITH TILDE]
char \xE4	(  345  8)  # E4 ⢜ ä [LATIN SMALL LETTER A WITH DIAERESIS]
char \xE5	(1   5678)  # E5 ⣱ å [LATIN SMALL LETTER A WITH RING ABOVE]
char \xE6	(1 34   8)  # E6 ⢍ æ [LATIN SMALL LETTER AE]
char \xE7	(1234 6 8)  # E7 ⢯ ç [LATIN SMALL LETTER C WITH CEDILLA]
char \xE8	( 234 6 8)  # E8 ⢮ è [LATIN SMALL LETTER E WITH GRAVE]
char \xE9	( 234 6  )  # E9 ⠮ é [LATIN SMALL LETTER E WITH ACUTE]
char \xEA	(1   5  8)  # EA ⢑ ê [LATIN SMALL LETTER E WITH CIRCUMFLEX]
char \xEB	(12 4 6 8)  # EB ⢫ ë [LATIN SMALL LETTER E WITH DIAERESIS]
char \xEC	(  34   8)  # EC ⢌ ì [LATIN SMALL LETTER I WITH GRAVE]
char \xED	(  34    )  # ED ⠌ í [LATIN SMALL LETTER I WITH ACUTE]
char \xEE	( 2 4   8)  # EE ⢊ î [LATIN SMALL LETTER I WITH CIRCUMFLEX]
char \xEF	( 2  5  8)  # EF ⢒ ï [LATIN SMALL LETTER I WITH DIAERESIS]
char \xF0	( 23 5678)  # F0 ⣶ ð [LATIN SMALL LETTER ETH]
char \xF1	(12 456 8)  # F1 ⢻ ñ [LATIN SMALL LETTER N WITH TILDE]
char \xF2	(  34 6 8)  # F2 ⢬ ò [LATIN SMALL LETTER O WITH GRAVE]
char \xF3	(  34 6  )  # F3 ⠬ ó [LATIN SMALL LETTER O WITH ACUTE]
char \xF4	(1 3 5  8)  # F4 ⢕ ô [LATIN SMALL LETTER O WITH CIRCUMFLEX]
char \xF5	(   4567 )  # F5 ⡸ õ [LATIN SMALL LETTER O WITH TILDE]
char \xF6	( 2 4 6 8)  # F6 ⢪ ö [LATIN SMALL LETTER O WITH DIAERESIS]
char \xF7	( 2  5 78)  # F7 ⣒ ÷ [DIVISION SIGN]
char \xF8	(   45 7 )  # F8 ⡘ ø [LATIN SMALL LETTER O WITH STROKE]
char \xF9	( 23456 8)  # F9 ⢾ ù [LATIN SMALL LETTER U WITH GRAVE]
char \xFA	( 23456  )  # FA ⠾ ú [LATIN SMALL LETTER U WITH ACUTE]
char \xFB	(1 3  6 8)  # FB ⢥ û [LATIN SMALL LETTER U WITH CIRCUMFLEX]
char \xFC	(12  56 8)  # FC ⢳ ü [LATIN SMALL LETTER U WITH DIAERESIS]
char \xFD	( 234   8)  # FD ⢎ ý [LATIN SMALL LETTER Y WITH ACUTE]
char \xFE	(1   56 8)  # FE ⢱ þ [LATIN SMALL LETTER THORN]
char \xFF	(     67 )  # FF ⡠ ÿ [LATIN SMALL LETTER Y WITH DIAERESIS]

include common.tti
