﻿# ***************************************************************************
# *
# *  Copyright (C) 2004-2006, International Business Machines
# *  Corporation; Unicode, Inc.; and others.  All Rights Reserved.
# *
# ***************************************************************************
# File: InterIndic_Devanagari.txt
# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
#
\uE028\uE03C > ऩ;  #\uE029
\uE030\uE03C > ऱ;  #\uE031
\uE033\uE03C > ऴ;  #\uE034
\uE015\uE03C > क़;  #\uE058 LETTER QA   (For Urdu)
\uE016\uE03C > ख़;  #\uE059 LETTER KHHA (For Urdu)
\uE017\uE03C > ग़;  #\uE05A LETTER GHHA (For Urdu)
\uE01C\uE03C > ज़;  #\uE05B LETTER ZA   (For Urdu)
\uE021\uE03C > ड़;  #\uE05C LETTER DDDHA (pronounced RRA)
\uE022\uE03C > ढ़;  #\uE05D LETTER RHA   (pronounced RRHA)
\uE02B\uE03C > फ़;  #\uE05E LETTER FA
\uE02F\uE03C > य़;  #\uE05F LETTER YYA
\uE012\uE057>औ;   # FALLBACK FOR TAMIL AU
0 > ०;       # FALLBACK FOR TAMIL
1 > १;
\uE055>; # FALLBACK BLOW AWAY KANNADA AND TELUGU LENGTH MARK
\uE056>; # FALLBACK BLOW AWAY KANNADA AND TELUGU AI LENGTH MARK
\uE057>; # FALLBACK BLOW AWAY TAMIL AU LENGTH MARK
\uE001 >  \u0901;  # SIGN CANDRABINDU
\uE002 >  \u0902;  # SIGN ANUSVARA
\uE003 >  ः;  # SIGN VISARGA
\uE004 >  ऄ;  # SIGN SHORT A
\uE005 >  अ;  # LETTER A
\uE006 >  आ;  # LETTER AA
\uE007 >  इ;  # LETTER I
\uE008 >  ई;  # LETTER II
\uE009 >  उ;  # LETTER U
\uE00A >  ऊ;  # LETTER UU
\uE00B >  ऋ;  # LETTER VOCALIC R
\uE00C >  ऌ;  # LETTER VOCALIC L
\uE00D >  ऍ;  # LETTER CANDRA E (For representing English sounds)
\uE00E >  ऎ;  # LETTER SHORT E(For Southern Scripts)
\uE00F >  ए;  # LETTER E
\uE010 >  ऐ;  # LETTER AI
\uE011 >  ऑ;  # LETTER CANDRA O (For representing English sounds)
\uE012 >  ऒ;  # LETTER SHORT O (For Southern Scripts)
\uE013 >  ओ;  # LETTER O
\uE014 >  औ;  # LETTER AU
\uE015 >  क;  # LETTER KA
\uE016 >  ख;  # LETTER KHA
\uE017 >  ग;  # LETTER GA
\uE018 >  घ;  # LETTER GHA
\uE019 >  ङ;  # LETTER NGA
\uE01A >  च;  # LETTER CA
\uE01B >  छ;  # LETTER CHA
\uE01C >  ज;  # LETTER JA
\uE01D >  झ;  # LETTER JHA
\uE01E >  ञ;  # LETTER NYA
\uE01F >  ट;  # LETTER TTA
\uE020 >  ठ;  # LETTER TTHA
\uE021 >  ड;  # LETTER DDA
\uE022 >  ढ;  # LETTER DDHA
\uE023 >  ण;  # LETTER NNA
\uE024 >  त;  # LETTER TA
\uE025 >  थ;  # LETTER THA
\uE026 >  द;  # LETTER DA
\uE027 >  ध;  # LETTER DHA
\uE028 >  न;  # LETTER NA
\uE029 >  ऩ;  # LETTER NNNA
\uE02A >  प;  # LETTER PA
\uE02B >  फ;  # LETTER PHA
\uE02C >  ब;  # LETTER BA
\uE02D >  भ;  # LETTER BHA
\uE02E >  म;  # LETTER MA
\uE02F >  य;  # LETTER YA
\uE030 >  र;  # LETTER RA
\uE031 >  ऱ;  # LETTER RRA (Eyelash RA for Southern scripts)
\uE032 >  ल;  # LETTER LA
\uE033 >  ळ;  # LETTER LLA
\uE034 >  ऴ;  # LETTER LLLA (LLLA for Southern scripts)
\uE035 >  व;  # LETTER VA
\uE036 >  श;  # LETTER SHA
\uE037 >  ष;  # LETTER SSA
\uE038 >  स;  # LETTER SA
\uE039 >  ह;  # LETTER HA
\uE03C >  \u093C;  # SIGN NUKTA
\uE03D >  ऽ;  # SIGN AVAGRAHA
\uE03E >  ा;  # VOWEL SIGN AA
\uE03F >  ि;  # VOWEL SIGN I
\uE040 >  ी;  # VOWEL SIGN II
\uE041 >  \u0941;  # VOWEL SIGN U
\uE042 >  \u0942;  # VOWEL SIGN UU
\uE043 >  \u0943;  # VOWEL SIGN VOCALIC R
\uE044 >  \u0944;  # VOWEL SIGN VOCALIC RR
\uE045 >  \u0945;  # VOWEL SIGN CANDRA E
\uE046 >  \u0946;  # VOWEL SIGN SHORT E
\uE047 >  \u0947;  # VOWEL SIGN E
\uE048 >  \u0948;  # VOWEL SIGN AI
\uE049 >  ॉ;  # VOWEL SIGN CANDRA O
\uE04A >  ॊ;  # VOWEL SIGN SHORT O
\uE04B >  ो;  # VOWEL SIGN O
\uE04C >  ौ;  # VOWEL SIGN AU
\uE04D >  \u094D;  # SIGN VIRAMA
\uE050 >  ॐ;  # OM
\uE051 >  \u0951;  # STRESS SIGN UDATTA
\uE052 >  \u0952;  # STRESS SIGN ANUDATTA
\uE053 >  \u0953;  # GRAVE ACCENT
\uE054 >  \u0954;  # ACUTE ACCENT
\uE058 >  क़;  # LETTER QA   (For Urdu)
\uE059 >  ख़;  # LETTER KHHA (For Urdu)
\uE05A >  ग़;  # LETTER GHHA (For Urdu)
\uE05B >  ज़;  # LETTER ZA   (For Urdu)
\uE05C >  ड़;  # LETTER DDDHA (pronounced RRA)
\uE05D >  ढ़;  # LETTER RHA   (pronounced RRHA)
\uE05E >  फ़;  # LETTER FA
\uE05F >  य़;  # LETTER YYA
\uE060 >  ॠ;  # LETTER VOCALIC RR
\uE061 >  ॡ;  # LETTER VOCALIC LL
\uE062 >  \u0962;  # VOWEL SIGN VOCALIC L
\uE063 >  \u0963;  # VOWEL SIGN VOCALIC LL
\uE064 >  ।;  # DANDA
\uE065 >  ॥;  # DOUBLE DANDA
\uE066 >  ०;  # DIGIT ZERO
\uE067 >  १;  # DIGIT ONE
\uE068 >  २;  # DIGIT TWO
\uE069 >  ३;  # DIGIT THREE
\uE06A >  ४;  # DIGIT FOUR
\uE06B >  ५;  # DIGIT FIVE
\uE06C >  ६;  # DIGIT SIX
\uE06D >  ७;  # DIGIT SEVEN
\uE06E >  ८;  # DIGIT EIGHT
\uE06F >  ९;  # DIGIT NINE
\uE070>॰;     # ABBREVIATION SIGN
\uE071>र;     # LETTER RA WITH MIDDLE DIAGONAL
\uE072>र;     # LETTER RA WITH LOWER DIAGONAL
\uE073>;           # RUPEE MARK
\uE074>र\u0942;           # 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
\uE081>व;  # FALLBACK FOR ORIYA LETTER WA
\uE082>ॽ;     # Devanagari Glottal Sign
\uE083>त\u094D;  # Bengali Khanda-ta
