#--------------------------------------------------------------------
# Copyright (c) 1999-2001, International Business Machines
# Corporation and others. All Rights Reserved.
#--------------------------------------------------------------------
# $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/impl/data/Attic/Transliterator_InterIndic_Tamil.txt,v $
# $Date: 2002/09/19 18:11:23 $
# $Revision: 1.10 $
#--------------------------------------------------------------------

# InterIndic-Tamil
#:: NFD (NFC) ;
\ue001>\u0b82; # FALLBACK SIGN CANDRABINDU
\ue002>\u0b82; # SIGN ANUSVARA
\ue003>\u0b83; # SIGN VISARGA
\ue005>\u0b85; # LETTER A
\ue006>\u0b86; # LETTER AA
\ue007>\u0b87; # LETTER I
\ue008>\u0b88; # LETTER II
\ue009>\u0b89; # LETTER U
\ue00a>\u0b8a; # LETTER UU
\ue00b>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0b8b>\u0bb0\u0bbf = LETTER VOCALIC R>LETTER RA.VOWEL SIGN I
\ue00c>\u0b87; # REMAP (indicExceptions.txt): \u0b8c>\u0b87 = LETTER VOCALIC L>LETTER I
\ue00d>\u0b8f; # FALLBACK
\ue00e>\u0b8e; # LETTER E
\ue00f>\u0b8f; # LETTER EE
\ue010>\u0b90; # LETTER AI
\ue011>\u0b92; # FALLBACK
\ue012>\u0b92; # LETTER O
\ue013>\u0b93; # LETTER OO
\ue014>\u0b94; # LETTER AU
\ue015>\u0b95; # LETTER KA
\ue016>\u0b95; # REMAP (indicExceptions.txt): \u0b96>\u0b95 = LETTER KHA>LETTER KA
\ue017>\u0b95; # REMAP (indicExceptions.txt): \u0b97>\u0b95 = LETTER GA>LETTER KA
\ue018>\u0b95; # REMAP (indicExceptions.txt): \u0b98>\u0b95 = LETTER GHA>LETTER KA
\ue019>\u0b99; # LETTER NGA
\ue01a>\u0b9a; # LETTER CA
\ue01b>\u0b9a; # REMAP (indicExceptions.txt): \u0b9b>\u0b9a = LETTER CHA>LETTER CA
\ue01c>\u0b9c; # LETTER JA
\ue01d>\u0b9a; # REMAP (indicExceptions.txt): \u0b9d>\u0b9a = LETTER JHA>LETTER CA
\ue01e>\u0b9e; # LETTER NYA
\ue01f>\u0b9f; # LETTER TTA
\ue020>\u0b9f; # REMAP (indicExceptions.txt): \u0ba0>\u0b9f = LETTER TTHA>LETTER TTA
\ue021>\u0b9f; # REMAP (indicExceptions.txt): \u0ba1>\u0b9f = LETTER DDA>LETTER TTA
\ue022>\u0b9f; # REMAP (indicExceptions.txt): \u0ba2>\u0b9f = LETTER DDHA>LETTER TTA
\ue023>\u0ba3; # LETTER NNA
\ue024>\u0ba4; # LETTER TA
\ue025>\u0ba4; # REMAP (indicExceptions.txt): \u0ba5>\u0ba4 = LETTER THA>LETTER TA
\ue026>\u0ba4; # REMAP (indicExceptions.txt): \u0ba6>\u0ba4 = LETTER DA>LETTER TA
\ue027>\u0ba4; # REMAP (indicExceptions.txt): \u0ba7>\u0ba4 = LETTER DHA>LETTER TA
\ue028\ue03c>\u0ba9;
\ue028>\u0ba8; # LETTER NA
\ue029>\u0ba9; # LETTER NNNA
\ue02a>\u0baa; # LETTER PA
\ue02b>\u0baa; # REMAP (indicExceptions.txt): \u0bab>\u0baa = LETTER PHA>LETTER PA
\ue02c>\u0baa; # REMAP (indicExceptions.txt): \u0bac>\u0baa = LETTER BA>LETTER PA
\ue02d>\u0baa; # REMAP (indicExceptions.txt): \u0bad>\u0baa = LETTER BHA>LETTER PA
\ue02e>\u0bae; # LETTER MA
\ue02f>\u0baf; # LETTER YA
\ue030\ue03c>\u0bb1;
\ue030>\u0bb0; # LETTER RA
\ue031>\u0bb1; # LETTER RRA
\ue032>\u0bb2; # LETTER LA
\ue033\ue03c>\u0bb4;
\ue033>\u0bb3; # LETTER LLA
\ue034>\u0bb4; # LETTER LLLA
\ue035>\u0bb5; # LETTER VA
\ue036>\u0bb7; # REMAP (indicExceptions.txt): \u0bb6>\u0bb7 = LETTER SHA>LETTER SSA
\ue037>\u0bb7; # LETTER SSA
\ue038>\u0bb8; # LETTER SA
\ue039>\u0bb9; # LETTER HA

\ue03c>; # FALLBACK BLOW AWAY NUKTA
\ue03d>; # FALLBACK BLOW AWAY AVAGRAHA

\ue03e>\u0bbe; # VOWEL SIGN AA
\ue03f>\u0bbf; # VOWEL SIGN I
\ue040>\u0bc0; # VOWEL SIGN II
\ue041>\u0bc1; # VOWEL SIGN U
\ue042>\u0bc2; # VOWEL SIGN UU
\ue043>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc3>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC R>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
\ue044>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc4>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC RR>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
\ue045>\u0bbe; # REMAP (indicExceptions.txt): \u0bc5>\u0bbe = VOWEL SIGN CANDRA E>VOWEL SIGN AA
\ue046>\u0bc6; # VOWEL SIGN E
\ue047>\u0bc7; # VOWEL SIGN EE
\ue048>\u0bc8; # VOWEL SIGN AI
\ue049>\u0bbe; # REMAP (indicExceptions.txt): \u0bc9>\u0bbe = VOWEL SIGN CANDRA O>VOWEL SIGN AA
\ue04a>\u0bca; # VOWEL SIGN O
\ue04b>\u0bcb; # VOWEL SIGN OO
\ue04c>\u0bcc; # VOWEL SIGN AU
\ue04d>\u0bcd; # SIGN VIRAMA
\ue050>\u0b93\u0bae\u0bcd; # REMAP (indicExceptions.txt): \u0bd0>\u0b93\u0bae\u0bcd = OM>LETTER OO.LETTER MA.SIGN VIRAMA
\ue051>;
\ue052>;
\ue053>;
\ue054>;
\ue055>; # UNMAPPED InterIndic-Tamil: LENGTH MARK
\ue056>\u0bc8; # REMAP (indicExceptions.txt): \u0bd6>\u0bc8 = AI LENGTH MARK>VOWEL SIGN AI
\ue057>\u0bd7; # AU LENGTH MARK
\ue058>\u0b95; # FALLBACK
\ue059>\u0b95; # REMAP (indicExceptions.txt): \u0bd9>\u0b95 = LETTER KHHA>LETTER KA
\ue05a>\u0b95; # REMAP (indicExceptions.txt): \u0bda>\u0b95 = LETTER GHHA>LETTER KA
\ue05b>\u0b9c; # REMAP (indicExceptions.txt): \u0bdb>\u0b9c = LETTER ZA>LETTER JA
\ue05c>\u0ba4; # FALLBACK
\ue05d>\u0b9f; # REMAP (indicExceptions.txt): \u0bdd>\u0b9f = LETTER RHA>LETTER TTA
\ue05e>\u0baa; # REMAP (indicExceptions.txt): \u0bde>\u0baa = LETTER FA>LETTER PA
\ue05f>\u0baf; # REMAP (indicExceptions.txt): \u0bdf>\u0baf = LETTER YYA>LETTER YA
\ue060>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0be0>\u0bb0\u0bbf = LETTER VOCALIC RR>LETTER RA.VOWEL SIGN I
\ue061>\u0b88; # REMAP (indicExceptions.txt): \u0be1>\u0b88 = LETTER VOCALIC LL>LETTER II
\ue062>\u0bbf;# FALLBACK VOWEL SIGN VOCALIC L
\ue063>\u0bc0;# FALLBACK VOWEL SIGN VOCALIC LL
\ue064>'.'   ; # FALLBACK FOR DANDA
\ue065>'.'   ; # FALLBACK FOR DOUBLE DANDA      

\ue066>\u0030; # FALLBACK DIGIT ZERO

\ue067\ue066\ue066\ue066>\u0bF2;
\ue067\ue066\ue066>\u0bf1;
\ue067\ue066>\u0bF0;

\ue067>\u0be7; # DIGIT ONE
\ue068>\u0be8; # DIGIT TWO
\ue069>\u0be9; # DIGIT THREE
\ue06a>\u0bea; # DIGIT FOUR
\ue06b>\u0beb; # DIGIT FIVE
\ue06c>\u0bec; # DIGIT SIX
\ue06d>\u0bed; # DIGIT SEVEN
\ue06e>\u0bee; # DIGIT EIGHT
\ue06f>\u0bef; # DIGIT NINE

\ue070>;       # ABBREVIATION SIGN
\ue071>\u0bc0; # LETTER RA WITH MIDDLE DIAGONAL
\ue072>\u0bc0; # LETTER RA WITH LOWER DIAGONAL
\ue073>;       # RUPEE MARK
\ue074>;       # RUPEE SIGN
\ue075>;       # CURRENCY NUMERATOR ONE
\ue076>;       # CURRENCY NUMERATOR TWO
\ue077>;       # CURRENCY NUMERATOR THREE
\ue078>;       # CURRENCY NUMERATOR FOUR
\ue079>;       # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
\ue07A>;       # CURRENCY DENOMINATOR SIXTEEN
\ue07B>;       # ISSHAR
\uE07C>;       # TIPPI
\uE07D>;       # ADDAK
\uE07E>;       # IRI
\uE07F>;       # URA
\uE080>;       # EK ONKAR


1000  >\u0BF2; # NUMBER ONE THOUSAND
100   >\u0BF1; # NUMBER ONE HUNDRED
10    >\u0BF0; # NUMBER TEN

#    :: NFC (NFD) ;
# eof
