###############################################################################
# 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) 2008-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 - Croatian
#
# Copyright (C) 2005 by Sebastien Sable, All rights reserved.

# Table generated by Sébastien Sablé <sable@users.sourceforge.net> for
# libbraille http://libbraille.org and gnome-braille
# http://cvs.gnome.org/viewcvs/gnome-braille/
#
# Table adapted for BRLTTY by Samuel Thibault <samuel.thibault@ens-lyon.org>
#
# *Many thanks to Danko Butorac <danko at ipsis.hr> for his help*
# Table based on "Croatian code page for computer 8-dot Braille
# alphabet ANSI-1250" from the "Croatian Association of the Blind" at
# http://www.savez-slijepih.hr/en/download.htm

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

# generated by ttbtest: charset=iso-8859-2
char \x20	(        )  # 20 ⠀   [SPACE]
char \x22	( 23 56  )  # 22 ⠶ " [QUOTATION MARK]
char \x24	( 234 6  )  # 24 ⠮ $ [DOLLAR SIGN]
char \x25	(   4 6  )  # 25 ⠨ % [PERCENT SIGN]
char \x26	(1234 6  )  # 26 ⠯ & [AMPERSAND]
char \x27	(     6  )  # 27 ⠠ ' [APOSTROPHE]
char \x28	(12   6  )  # 28 ⠣ ( [LEFT PARENTHESIS]
char \x29	(  345   )  # 29 ⠜ ) [RIGHT PARENTHESIS]
char \x2A	(  3 5   )  # 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	( 2  56  )  # 2F ⠲ / [SOLIDUS]
char \x30	(  34 6  )  # 30 ⠬ 0 [DIGIT ZERO]
char \x31	(1    6  )  # 31 ⠡ 1 [DIGIT ONE]
char \x32	(  34    )  # 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	(123456  )  # 3D ⠿ = [EQUALS SIGN]
char \x3E	(  3 56  )  # 3E ⠴ > [GREATER-THAN SIGN]
char \x3F	( 2   6  )  # 3F ⠢ ? [QUESTION MARK]
char \x40	(   4  7 )  # 40 ⡈ @ [COMMERCIAL AT]
# uppercase Latin alphabet  # 41-5A
char \x5B	(123 567 )  # 5B ⡷ [ [LEFT SQUARE BRACKET]
char \x5C	(   45 7 )  # 5C ⡘ \ [REVERSE SOLIDUS]
char \x5D	( 234567 )  # 5D ⡾ ] [RIGHT SQUARE BRACKET]
char \x5E	(    567 )  # 5E ⡰ ^ [CIRCUMFLEX ACCENT]
char \x5F	(   4567 )  # 5F ⡸ _ [LOW LINE]
char \x60	(   4    )  # 60 ⠈ ` [GRAVE ACCENT]
# lowercase Latin alphabet  # 61-7A
char \x7B	(123 56  )  # 7B ⠷ { [LEFT CURLY BRACKET]
char \x7C	(   45   )  # 7C ⠘ | [VERTICAL LINE]
char \x7D	( 23456  )  # 7D ⠾ } [RIGHT CURLY BRACKET]
char \x7E	(    56  )  # 7E ⠰ ~ [TILDE]
char \u0104	(  345 78)  # A1 ⣜ Ą [LATIN CAPITAL LETTER A WITH OGONEK]
char \u02D8	(   4 67 )  # A2 ⡨ ˘ [BREVE]
char \u0141	(123  6 8)  # A3 ⢧ Ł [LATIN CAPITAL LETTER L WITH STROKE]
char \xA4	(   4 678)  # A4 ⣨ ¤ [CURRENCY SIGN]
char \u013D	(   456 8)  # A5 ⢸ Ľ [LATIN CAPITAL LETTER L WITH CARON]
char \u015A	( 234   8)  # A6 ⢎ Ś [LATIN CAPITAL LETTER S WITH ACUTE]
char \xA7	(  3 5 78)  # A7 ⣔ § [SECTION SIGN]
char \xA8	(       8)  # A8 ⢀ ¨ [DIAERESIS]
char \u0160	(1   567 )  # A9 ⡱ Š [LATIN CAPITAL LETTER S WITH CARON]
char \u015E	( 23456 8)  # AA ⢾ Ş [LATIN CAPITAL LETTER S WITH CEDILLA]
char \u0164	(12345  8)  # AB ⢟ Ť [LATIN CAPITAL LETTER T WITH CARON]
char \u0179	(1 3 56 8)  # AC ⢵ Ź [LATIN CAPITAL LETTER Z WITH ACUTE]
char \xAD	(      78)  # AD ⣀ ­ [SOFT HYPHEN]
char \u017D	( 234 67 )  # AE ⡮ Ž [LATIN CAPITAL LETTER Z WITH CARON]
char \u017B	(12   678)  # AF ⣣ Ż [LATIN CAPITAL LETTER Z WITH DOT ABOVE]
char \xB0	(    5 78)  # B0 ⣐ ° [DEGREE SIGN]
char \u0105	(    567 )  # B1 ⡰ ą [LATIN SMALL LETTER A WITH OGONEK]
char \u02DB	(    5  8)  # B2 ⢐ ˛ [OGONEK]
char \u0142	( 23   78)  # B3 ⣆ ł [LATIN SMALL LETTER L WITH STROKE]
char \xB4	(   4   8)  # B4 ⢈ ´ [ACUTE ACCENT]
char \u013E	(12     8)  # B5 ⢃ ľ [LATIN SMALL LETTER L WITH CARON]
char \u015B	(  3 5 7 )  # B6 ⡔ ś [LATIN SMALL LETTER S WITH ACUTE]
char \u02C7	(   45  8)  # B7 ⢘ ˇ [CARON]
char \xB8	(    56 8)  # B8 ⢰ ¸ [CEDILLA]
char \u0161	(1   56 8)  # B9 ⢱ š [LATIN SMALL LETTER S WITH CARON]
char \u015F	(  3 5678)  # BA ⣴ ş [LATIN SMALL LETTER S WITH CEDILLA]
char \u0165	( 23 567 )  # BB ⡶ ť [LATIN SMALL LETTER T WITH CARON]
char \u017A	( 2   678)  # BC ⣢ ź [LATIN SMALL LETTER Z WITH ACUTE]
char \u02DD	(     6 8)  # BD ⢠ ˝ [DOUBLE ACUTE ACCENT]
char \u017E	( 234 6 8)  # BE ⢮ ž [LATIN SMALL LETTER Z WITH CARON]
char \u017C	(1    678)  # BF ⣡ ż [LATIN SMALL LETTER Z WITH DOT ABOVE]
char \u0154	(123 5  8)  # C0 ⢗ Ŕ [LATIN CAPITAL LETTER R WITH ACUTE]
char \xC1	(1 3    8)  # C1 ⢅ Á [LATIN CAPITAL LETTER A WITH ACUTE]
char \xC2	(123 56 8)  # C2 ⢷ Â [LATIN CAPITAL LETTER A WITH CIRCUMFLEX]
char \u0102	(1      8)  # C3 ⢁ Ă [LATIN CAPITAL LETTER A WITH BREVE]
char \xC4	(  345 7 )  # C4 ⡜ Ä [LATIN CAPITAL LETTER A WITH DIAERESIS]
char \u0139	(123    8)  # C5 ⢇ Ĺ [LATIN CAPITAL LETTER L WITH ACUTE]
char \u0106	(1  4 67 )  # C6 ⡩ Ć [LATIN CAPITAL LETTER C WITH ACUTE]
char \xC7	(1234 67 )  # C7 ⡯ Ç [LATIN CAPITAL LETTER C WITH CEDILLA]
char \u010C	(1    67 )  # C8 ⡡ Č [LATIN CAPITAL LETTER C WITH CARON]
char \xC9	(1234567 )  # C9 ⡿ É [LATIN CAPITAL LETTER E WITH ACUTE]
char \u0118	(1   5678)  # CA ⣱ Ę [LATIN CAPITAL LETTER E WITH OGONEK]
char \xCB	(12 4 67 )  # CB ⡫ Ë [LATIN CAPITAL LETTER E WITH DIAERESIS]
char \u011A	(12   67 )  # CC ⡣ Ě [LATIN CAPITAL LETTER E WITH CARON]
char \xCD	(  34  7 )  # CD ⡌ Í [LATIN CAPITAL LETTER I WITH ACUTE]
char \xCE	(12 4567 )  # CE ⡻ Î [LATIN CAPITAL LETTER I WITH CIRCUMFLEX]
char \u010E	(1  45  8)  # CF ⢙ Ď [LATIN CAPITAL LETTER D WITH CARON]
char \u0110	(1  4567 )  # D0 ⡹ Đ [LATIN CAPITAL LETTER D WITH STROKE]
char \u0143	(1 345  8)  # D1 ⢝ Ń [LATIN CAPITAL LETTER N WITH ACUTE]
char \u0147	(12 4 678)  # D2 ⣫ Ň [LATIN CAPITAL LETTER N WITH CARON]
char \xD3	(1 3 5  8)  # D3 ⢕ Ó [LATIN CAPITAL LETTER O WITH ACUTE]
char \xD4	(1  45678)  # D4 ⣹ Ô [LATIN CAPITAL LETTER O WITH CIRCUMFLEX]
char \u0150	( 2 4 678)  # D5 ⣪ Ő [LATIN CAPITAL LETTER O WITH DOUBLE ACUTE]
char \xD6	( 2 4 67 )  # D6 ⡪ Ö [LATIN CAPITAL LETTER O WITH DIAERESIS]
char \xD7	(1 34 6 8)  # D7 ⢭ × [MULTIPLICATION SIGN]
char \u0158	( 2 456 8)  # D8 ⢺ Ř [LATIN CAPITAL LETTER R WITH CARON]
char \u016E	(  34 67 )  # D9 ⡬ Ů [LATIN CAPITAL LETTER U WITH RING ABOVE]
char \xDA	(1 3  6 8)  # DA ⢥ Ú [LATIN CAPITAL LETTER U WITH ACUTE]
char \u0170	(  34 678)  # DB ⣬ Ű [LATIN CAPITAL LETTER U WITH DOUBLE ACUTE]
char \xDC	(12  567 )  # DC ⡳ Ü [LATIN CAPITAL LETTER U WITH DIAERESIS]
char \xDD	(1 3456 8)  # DD ⢽ Ý [LATIN CAPITAL LETTER Y WITH ACUTE]
char \u0162	( 2345  8)  # DE ⢞ Ţ [LATIN CAPITAL LETTER T WITH CEDILLA]
char \xDF	( 234 678)  # DF ⣮ ß [LATIN SMALL LETTER SHARP S]
char \u0155	( 23  67 )  # E0 ⡦ ŕ [LATIN SMALL LETTER R WITH ACUTE]
char \xE1	( 2    7 )  # E1 ⡂ á [LATIN SMALL LETTER A WITH ACUTE]
char \xE2	( 23  678)  # E2 ⣦ â [LATIN SMALL LETTER A WITH CIRCUMFLEX]
char \u0103	( 2     8)  # E3 ⢂ ă [LATIN SMALL LETTER A WITH BREVE]
char \xE4	(  345  8)  # E4 ⢜ ä [LATIN SMALL LETTER A WITH DIAERESIS]
char \u013A	( 23   7 )  # E5 ⡆ ĺ [LATIN SMALL LETTER L WITH ACUTE]
char \u0107	(1  4 6 8)  # E6 ⢩ ć [LATIN SMALL LETTER C WITH ACUTE]
char \xE7	(1234 6 8)  # E7 ⢯ ç [LATIN SMALL LETTER C WITH CEDILLA]
char \u010D	(1    6 8)  # E8 ⢡ č [LATIN SMALL LETTER C WITH CARON]
char \xE9	(123456 8)  # E9 ⢿ é [LATIN SMALL LETTER E WITH ACUTE]
char \u0119	( 2   6 8)  # EA ⢢ ę [LATIN SMALL LETTER E WITH OGONEK]
char \xEB	(12 4 6 8)  # EB ⢫ ë [LATIN SMALL LETTER E WITH DIAERESIS]
char \u011B	( 23    8)  # EC ⢆ ě [LATIN SMALL LETTER E WITH CARON]
char \xED	(  34   8)  # ED ⢌ í [LATIN SMALL LETTER I WITH ACUTE]
char \xEE	(12 456 8)  # EE ⢻ î [LATIN SMALL LETTER I WITH CIRCUMFLEX]
char \u010F	(  3  6 8)  # EF ⢤ ď [LATIN SMALL LETTER D WITH CARON]
char \u0111	(1  456 8)  # F0 ⢹ đ [LATIN SMALL LETTER D WITH STROKE]
char \u0144	( 2  567 )  # F1 ⡲ ń [LATIN SMALL LETTER N WITH ACUTE]
char \u0148	( 23 5  8)  # F2 ⢖ ň [LATIN SMALL LETTER N WITH CARON]
char \xF3	( 2   67 )  # F3 ⡢ ó [LATIN SMALL LETTER O WITH ACUTE]
char \xF4	( 2  56 8)  # F4 ⢲ ô [LATIN SMALL LETTER O WITH CIRCUMFLEX]
char \u0151	(  3 5  8)  # F5 ⢔ ő [LATIN SMALL LETTER O WITH DOUBLE ACUTE]
char \xF6	( 2 4 6 8)  # F6 ⢪ ö [LATIN SMALL LETTER O WITH DIAERESIS]
char \xF7	( 2  5 78)  # F7 ⣒ ÷ [DIVISION SIGN]
char \u0159	(  3 56 8)  # F8 ⢴ ř [LATIN SMALL LETTER R WITH CARON]
char \u016F	(  34 6 8)  # F9 ⢬ ů [LATIN SMALL LETTER U WITH RING ABOVE]
char \xFA	( 2    78)  # FA ⣂ ú [LATIN SMALL LETTER U WITH ACUTE]
char \u0171	(1  4 678)  # FB ⣩ ű [LATIN SMALL LETTER U WITH DOUBLE ACUTE]
char \xFC	(12  56 8)  # FC ⢳ ü [LATIN SMALL LETTER U WITH DIAERESIS]
char \xFD	( 2  5678)  # FD ⣲ ý [LATIN SMALL LETTER Y WITH ACUTE]
char \u0163	(  3 567 )  # FE ⡴ ţ [LATIN SMALL LETTER T WITH CEDILLA]
char \u02D9	(     67 )  # FF ⡠ ˙ [DOT ABOVE]

char \xA6	(   4 6 8)  #    ⢨ ¦ [BROKEN BAR]
char \xA9	(12 45  8)  #    ⢛ © [COPYRIGHT SIGN]
char \xAB	(  3   78)  #    ⣄ « [LEFT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xAC	( 23 5 7 )  #    ⡖ ¬ [NOT SIGN]
char \xAE	(12 45678)  #    ⣻ ® [REGISTERED SIGN]
char \xB1	(1234 678)  #    ⣯ ± [PLUS-MINUS SIGN]
char \xB5	(  34567 )  #    ⡼ µ [MICRO SIGN]
char \xB6	(1234   8)  #    ⢏ ¶ [PILCROW SIGN]
char \xB7	(  3    8)  #    ⢄ · [MIDDLE DOT]
char \xBB	(     678)  #    ⣠ » [RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \u2013	(1  4   8)  #    ⢉ – [EN DASH]
char \u2014	(  3  678)  #    ⣤ — [EM DASH]
char \u2018	(12 4   8)  #    ⢋ ‘ [LEFT SINGLE QUOTATION MARK]
char \u2019	(1   5  8)  #    ⢑ ’ [RIGHT SINGLE QUOTATION MARK]
char \u201A	( 23 5678)  #    ⣶ ‚ [SINGLE LOW-9 QUOTATION MARK]
char \u201C	(12  5  8)  #    ⢓ “ [LEFT DOUBLE QUOTATION MARK]
char \u201D	( 2 45  8)  #    ⢚ ” [RIGHT DOUBLE QUOTATION MARK]
char \u201E	( 23 56 8)  #    ⢶ „ [DOUBLE LOW-9 QUOTATION MARK]
char \u2020	(  3  67 )  #    ⡤ † [DAGGER]
char \u2021	( 23 5 78)  #    ⣖ ‡ [DOUBLE DAGGER]
char \u2022	(12345678)  #    ⣿ • [BULLET]
char \u2026	( 2 4   8)  #    ⢊ … [HORIZONTAL ELLIPSIS]
char \u2030	(1 34   8)  #    ⢍ ‰ [PER MILLE SIGN]
char \u2039	( 2  5 7 )  #    ⡒ ‹ [SINGLE LEFT-POINTING ANGLE QUOTATION MARK]
char \u203A	( 2  5  8)  #    ⢒ › [SINGLE RIGHT-POINTING ANGLE QUOTATION MARK]
char \u20AC	(12  5678)  #    ⣳ € [EURO SIGN]
char \u2122	( 23  6 8)  #    ⢦ ™ [TRADE MARK SIGN]

include common.tti
