#--------------------------------------------------------------------
# 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_Latin.txt,v $
# $Date: 2004/05/07 02:57:41 $
# $Revision: 1.9 $
#--------------------------------------------------------------------

# InterIndic-Latin
   #\u0e00 reserved
    #consonants
    $chandrabindu=\ue001;
    $anusvara=\ue002;
    $visarga=\ue003;
    #\u0e004 reserved
    # w<vowel> represents the stand-alone form
    $wa=\ue005;
    $waa=\ue006;
    $wi=\ue007;
    $wii=\ue008;
    $wu=\ue009;
    $wuu=\ue00a;
    $wr=\ue00b;
    $wl=\ue00c;
    $wce=\ue00d; # LETTER CANDRA E
    $wse=\ue00e; # LETTER SHORT E
    $we=\ue00f;  # \u090f LETTER E
    $wai=\ue010;
    $wco=\ue011; # LETTER CANDRA O
    $wso=\ue012; # LETTER SHORT O
    $wo=\ue013;  # \u0913 LETTER O
    $wau=\ue014;
    $ka=\ue015;
    $kha=\ue016;
    $ga=\ue017;
    $gha=\ue018;
    $nga=\ue019;
    $ca=\ue01a;
    $cha=\ue01b;
    $ja=\ue01c;
    $jha=\ue01d;
    $nya=\ue01e;
    $tta=\ue01f;
    $ttha=\ue020;
    $dda=\ue021;
    $ddha=\ue022;
    $nna=\ue023;
    $ta=\ue024;
    $tha=\ue025;
    $da=\ue026;
    $dha=\ue027;
    $na=\ue028;
    $ena=\ue029; #compatibility
    $pa=\ue02a;
    $pha=\ue02b;
    $ba=\ue02c;
    $bha=\ue02d;
    $ma=\ue02e;
    $ya=\ue02f;
    $ra=\ue030;
    $vva=\ue081;
    $rra=\ue031;
    $la=\ue032;
    $lla=\ue033; 
    $ela=\ue034; #compatibility
    $va=\ue035;
    $sha=\ue036;
    $ssa=\ue037;
    $sa=\ue038;
    $ha=\ue039;
#\u093a Reserved
#\u093b Reserved
    $nukta=\ue03c;
    $avagraha=\ue03d; # SIGN AVAGRAHA
    # <vowel> represents the dependent form
    $aa=\ue03e;
    $i=\ue03f;
    $ii=\ue040;
    $u=\ue041;
    $uu=\ue042;
    $rh=\ue043;
    $lh=\ue044;
    $ce=\ue045; #VOWEL SIGN CANDRA E 
    $se=\ue046; #VOWEL SIGN SHORT E
    $e=\ue047;
    $ai=\ue048;
    $co=\ue049; # VOWEL SIGN CANDRA O
    $so=\ue04a; # VOWEL SIGN SHORT O
    $o=\ue04b;  # \u094b
    $au=\ue04c;    
    $virama=\ue04d;
# \u094e Reserved
# \u094f Reserved
    $om=\ue050; # OM
    \ue051>;        # UNMAPPED STRESS SIGN UDATTA
    \ue052>;        # UNMAPPED STRESS SIGN ANUDATTA
    \ue053>;        # UNMAPPED GRAVE ACCENT
    \ue054>;        # UNMAPPED ACUTE ACCENT
    $lm = \ue055;#  Telugu Length Mark    
    $ailm=\ue056;#  AI Length Mark 
    $aulm=\ue057;#  AU Length Mark 
     #urdu compatibity forms
    $uka=\ue058;
    $ukha=\ue059;
    $ugha=\ue05a;
    $ujha=\ue05b;
    $uddha=\ue05c;
    $udha=\ue05d;
    $ufa=\ue05e;
    $uya=\ue05f;
    $wrr=\ue060;
    $wll=\ue061;
    $rrh=\ue062;
    $llh=\ue063;
    $danda=\ue064;
    $doubleDanda=\ue065;
    $zero=\ue066;     # DIGIT ZERO
    $one=\ue067;      # DIGIT ONE
    $two=\ue068;      # DIGIT TWO
    $three=\ue069;    # DIGIT THREE
    $four=\ue06a;     # DIGIT FOUR
    $five=\ue06b;     # DIGIT FIVE
    $six=\ue06c;      # DIGIT SIX
    $seven=\ue06d;    # DIGIT SEVEN
    $eight=\ue06e;    # DIGIT EIGHT
    $nine=\ue06f;     # DIGIT NINE

# \u0970>; # UNMAPPED ABBREVIATION SIGN
    $depVowelAbove=[\ue03e-\ue040\ue045-\ue04c];
    $depVowelBelow=[\ue041-\ue044];
    # $x was originally called '&'; $z was '%'
    $x=[$aa$ai$au$ii$i$uu$u$rrh$rh$lh$llh$e$o$se$ce$so$co];
    $z=[bcdfghjklmnpqrstvwxyz];
    $vowels=[aeiour\u0304\u0325\u0306];
    $forceIndependentMatra = [^[[:L:][\u0300-\u034c]]];
    ######################################################################
    # convert from Native letters to Latin letters
    ######################################################################
     #transliterations for anusvara
    $anusvara} [$ka$kha$ga$gha$nga]             > n\u0307;
    $anusvara} [$ca$cha$ja$jha$nya]             > n\u0304;
    $anusvara} [$tta$ttha$dda$ddha$nna]         > n\u0323;
    $anusvara} [$ta$tha$da$dha$na]              > n      ;
    $anusvara} [$pa$pha$ba$bha$ma]              > m      ;
    $anusvara} [$ya$ra$lla$la$va$ssa$sha$sa$ha] > n      ;
    $anusvara> m\u0307;

    # Urdu compatibility
    $ya$nukta}$x        > y\u0307  ;
    $ya$nukta$virama    > y\u0307  ;
    $ya$nukta           > y\u0307a ;    

    $la$nukta }$x       > l\u0331  ;
    $la$nukta$virama    > l\u0331  ;
    $la$nukta           > l\u0331a ;

    $na$nukta }$x       > n\u0331  ;
    $na$nukta$virama    > n\u0331  ;
    $na$nukta           > n\u0331a ;

    $ena }$x            > n\u0331  ;
    $ena$virama         > n\u0331  ;
    $ena                > n\u0331a ;
    $uka		> qa       ;
    $ka$nukta }$x       > q        ;
    $ka$nukta$virama    > q        ;
    $ka$nukta           > qa       ;
    $kha$nukta }$x      > k\u0331h\u0331 ;
    $kha$nukta$virama   > k\u0331h\u0331 ;
    $kha$nukta          > k\u0331h\u0331a ;
    $ukha$virama        > k\u0331h\u0331;
    $ukha               > k\u0331h\u0331a;
    $ugha		> g\u0307a ;
    $ga$nukta }$x       > g\u0307  ;
    $ga$nukta$virama    > g\u0307  ;
    $ga$nukta           > g\u0307a ;
    
    $ujha                > za       ;	
    $ja$nukta }$x       > z        ;
    $ja$nukta$virama    > z        ;
    $ja$nukta           > za       ;
    $ddha$nukta}$x      > r\u0323h ;
    $ddha$nukta$virama  > r\u0323h ;
    $ddha$nukta         > r\u0323ha;

    $uddha}$x           > r\u0323  ;
    $uddha$virama       > r\u0323 ;
    $uddha              > r\u0323a;
    
    $udha               > r\u0323a ;
    $dda$nukta}$x       > r\u0323  ;
    $dda$nukta$virama   > r\u0323  ;
    $dda$nukta          > r\u0323a ;
    $pha$nukta }$x      > f  ;
    $pha$nukta$virama   > f  ;
    $pha$nukta          > fa ;
    $ufa }$x            > f  ;
    $ufa$virama         > f  ;
    $ufa                > fa ;

    $ra$nukta}$x        > r\u0331;
    $ra$nukta$virama    > r\u0331;
    $ra$nukta           > r\u0331a;
    $lla$nukta}$x       > l\u0331;
    $lla$nukta$virama   > l\u0331; 
    $lla$nukta          > l\u0331a;

    $ela}$x             > l\u0331;
    $ela$virama         > l\u0331; 
    $ela                > l\u0331a;

    $uya}$x             > y\u0307;
    $uya$virama         > y\u0307;
    $uya                > y\u0307a;


    # normal consonants
    $ka$virama}$ha>k'';
    $ka}$x>k;
    $ka$virama>k;
    $ka>ka;
    $kha}$x>kh;
    $kha$virama>kh;
    $kha>kha;
    $ga$virama}$ha>g'';
    $ga}$x>g;
    $ga$virama>g;
    $ga>ga;

    $gha}$x>gh;
    $gha$virama>gh;
    $gha>gha;

    $nga}$x>n\u0307;
    $nga$virama>n\u0307;
    $nga>n\u0307a  ;
    $ca$virama}$ha>c'';
    $ca}$x>c;
    $ca$virama>c;
    $ca>ca;

    $cha}$x>ch;
    $cha$virama>ch;
    $cha>cha;
    $ja$virama}$ha>j'';
    $ja}$x>j;
    $ja$virama>j;
    $ja>ja;

    $jha}$x>jh;
    $jha$virama>jh;
    $jha>jha;

    $nya }$x>n\u0303 ;
    $nya$virama>n\u0303;
    $nya > n\u0303a  ;


    $tta$virama}$ha>t\u0323'';
    $tta}$x>t\u0323;
    $tta$virama>t\u0323;
    $tta>t\u0323a;

    $ttha}$x>t\u0323h;
    $ttha$virama>t\u0323h;
    $ttha>t\u0323ha;
    $dda}$x$ha>d\u0323'';
    $dda}$x>d\u0323;
    $dda$virama>d\u0323;
    $dda>d\u0323a;

    $ddha}$x>d\u0323h;
    $ddha$virama>d\u0323h;
    $ddha>d\u0323ha;

    $nna}$x>n\u0323  ;
    $nna$virama>n\u0323;
    $nna>n\u0323a   ;


    $ta$virama}$ha>t'';
    $ta$virama}$ttha>t'';
    $ta$virama}$tta>t'';
    $ta$virama}$tha>t'';
    $ta}$x>t;
    $ta$virama>t;
    $ta>ta;
    $tha}$x>th;
    $tha$virama>th;
    $tha>tha;

    $da$virama}$ha>d'';
    $da$virama}$ddha>d'';
    $da$virama}$dda>d'';
    $da$virama}$dha>d'';
    $da}$x>d;
    $da$virama>d;
    $da>da;
    $dha}$x>dh;
    $dha$virama>dh;
    $dha>dha;
    $na$virama}$ga>n'';
    $na$virama}$ya>n'';
    $na}$x>n;
    $na$virama>n;
    $na>na;


    $pa$virama}$ha>p'';
    $pa}$x>p;
    $pa$virama>p;
    $pa>pa;
    $pha}$x>ph;
    $pha$virama>ph;
    $pha>pha;
    $ba$virama}$ha>b'';
    $ba}$x>b;
    $ba$virama>b;
    $ba>ba;

    $bha}$x>bh;
    $bha$virama>bh;
    $bha>bha;

    $ma$virama}$ma>m'';
    $ma}$x>m;
    $ma$virama>m;
    $ma>ma;

    $ya}$x>y;
    $ya$virama>y;
    $ya>ya;
    $ra$virama}$ha>r'';
    $ra}$x>r;
    $ra$virama>r;
    $ra>ra;
    $vva$virama}$ha>w\u0307'';
    $vva}$x>w\u0307;
    $vva$virama>w\u0307;
    $vva>w\u0307a;    
    $rra$virama}$ha>r\u0331'';
    $rra}$x>r\u0331;
    $rra$virama>r\u0331;
    $rra>r\u0331a;
    $la$virama}$ha>l'';
    $la}$x>l;
    $la$virama>l;
    $la>la;
    $lla$virama}$ha>l\u0323'';
    $lla}$x>l\u0323;
    $lla$virama>l\u0323;
    $lla>l\u0323a;
    $va}$x>v;
    $va$virama>v;
    $va>va;
    $sa$virama}$ha>s'';
    $sa$virama}$sha>s'';
    $sa$virama}$ssa>s'';
    $sa$virama}$sa>s'';
    $sa}$x>s;
    $sa$virama>s;

    #for gurmukhi
    $sa$nukta}$x>s\u0301;
    $sa$nukta$virama>s\u0301;
    $sa$nukta>s\u0301a;
    $sa>sa;

    $sha}$x>s\u0301;
    $sha$virama>s\u0301;
    $sha>s\u0301a;

    $ssa}$x>s\u0323;
    $ssa$virama>s\u0323;
    $ssa>s\u0323a;
    $ha}$x>h;
    $ha$virama>h;
    $ha>ha;

    # dependent vowels (should never occur except following consonants)
    $forceIndependentMatra{$aa  > \u0314a\u0304       ;
    $forceIndependentMatra{$ai  > \u0314ai            ;
    $forceIndependentMatra{$au  > \u0314au            ;
    $forceIndependentMatra{$ii  > \u0314i\u0304       ;
    $forceIndependentMatra{$i   > \u0314i             ;
    $forceIndependentMatra{$uu  > \u0314u\u0304       ;
    $forceIndependentMatra{$u   > \u0314u             ;
    $forceIndependentMatra{$rrh > \u0314r\u0325\u0304 ;
    $forceIndependentMatra{$rh  > \u0314r\u0325       ;
    $forceIndependentMatra{$llh > \u0314l\u0325\u0304 ;
    $forceIndependentMatra{$lh  > \u0314l\u0325       ;
    $forceIndependentMatra{$e   > \u0314e\u0304       ;
    $forceIndependentMatra{$o   > \u0314o\u0304       ;
    #extra vowels
    $forceIndependentMatra{$ce  > \u0314e\u0306       ;
    $forceIndependentMatra{$co  > \u0314o\u0306       ;
    $forceIndependentMatra{$se  > \u0314e             ;
    $forceIndependentMatra{$so  > \u0314o             ;
    $forceIndependentMatra{$nukta  >; # Nukta cannot appear independently or as first character
    $forceIndependentMatra{$virama >; # Virama cannot appear independently or as first character
    $aa  > a\u0304       ;
    $ai  > ai            ;
    $au  > au            ;
    $ii  > i\u0304       ;
    $i   > i             ;
    $uu  > u\u0304       ;
    $u   > u             ;
    $rrh > r\u0325\u0304 ;
    $rh  > r\u0325       ;
    $llh > l\u0325\u0304 ;
    $lh  > l\u0325       ;
    $e   > e\u0304       ;
    $o   > o\u0304       ;
    #extra vowels
    $ce  > e\u0306       ;
    $co  > o\u0306       ;
    $se  > e             ;
    $so  > o             ;
    #dependent vowels when following independent vowels. Generally Illegal only for roundtripping
    $waa} $x > a\u0304\u0314        ;
    $wai} $x > ai\u0314             ;
    $wau} $x > au\u0314             ;
    $wii} $x > i\u0304\u0314        ;
    $wi } $x > i\u0314              ;
    $wuu} $x > u\u0304\u0314        ;
    $wu } $x > u\u0314              ;
    $wrr} $x > r\u0325\u0304\u0314  ;
    $wr } $x > r\u0325\u0314        ;
    $wll} $x > l\u0325\u0304\u0314  ;
    $wl } $x > l\u0325\u0314        ;
    $we } $x > e\u0304\u0314        ;
    $wo } $x > o\u0304\u0314        ;
    $wa } $x > a\u0314              ;
    #extra vowels
    $wce} $x > e\u0306\u0314        ;
    $wco} $x > o\u0306\u0314        ;
    $wse} $x > e\u0314              ;
    $wso} $x > o\u0314              ;
    $om} $x > ''om\u0314            ;
           
    # independent vowels when preceeded by vowels
    $vowels{$waa    > ''a\u0304         ;
    $vowels{$wai    > ''ai              ;
    $vowels{$wau    > ''au              ;
    $vowels{$wii     > ''i\u0304        ;
    $vowels{$wi     > ''i               ;
    $vowels{$wuu    > ''u\u0304         ;
    $vowels{$wu     > ''u               ;
    $vowels{$wrr    > ''r\u0325\u0304   ;
    $vowels{$wr     > ''r\u0325         ;
    $vowels{$wll    > ''l\u0325\u0304   ;
    $vowels{$wl     > ''l\u0325         ;
    $vowels{$we     > ''e\u0304         ;
    $vowels{$wo     > ''o\u0304         ;
    $vowels{$wa     > ''a               ;
    #extra vowels
    $vowels{$wce    > ''e\u0306         ;
    $vowels{$wco    > ''o\u0306         ;
    $vowels{$wse    > ''e               ;
    $vowels{$wso    > ''o               ;

    # independent vowels (otherwise)
    $waa > a\u0304          ;
    $wai > ai               ;
    $wau > au               ;
    $wii > i\u0304          ;
    $wi  > i                ;
    $wuu > u\u0304          ;
    $wu  > u                ;
    $wrr > r\u0325\u0304    ;
    $wr  > r\u0325          ;
    $wll > l\u0325\u0304    ;
    $wl  > l\u0325          ;
    $we  > e\u0304          ;
    $wo  > o\u0304          ;
    $wa  > a                ;
    #extra vowels
    $wce > e\u0306          ;
    $wco > o\u0306          ;
    $wse > e                ;
    $wso > o                ;
    $om > ''om              ;

    #stress marks
    $avagraha > \u0315;
    $chandrabindu$anusvara>\u0303;
    $chandrabindu > m\u0310;
    $visarga>h\u0323;
    #numbers
    $zero  > 0; 
    $one   > 1;  
    $two   > 2;  
    $three > 3;
    $four  > 4; 
    $five  > 5; 
    $six   > 6;  
    $seven > 7;
    $eight > 8;
    $nine  > 9;
    $lm   >; 
    $ailm >;
    $aulm >;

    $danda>'.';
    $doubleDanda>'.';
   
    \ue070>;       # ABBREVIATION SIGN
    # LETTER RA WITH MIDDLE DIAGONAL
	\ue071}$x>ra; 
	\ue071$virama>r;
	\ue071>ra; 
	# LETTER RA WITH LOWER DIAGONAL
	\ue072}$x>ra; 
	\ue072$virama>r;
	\ue072>ra; 
	
	\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
	\uE004>;       # DEVANAGARI VOWEL SIGN SHORT A
	