| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343 | // replace combining (tone) accents with single characters
.replace
à	à
á	á
ả	ả
ã	ã
ạ	ạ
ằ	ằ
ắ	ắ
ẳ	ẳ
ẵ	ẵ
ặ	ặ
ầ	ầ
ấ	ấ
ẩ	ẩ
ẫ	ẫ
ậ	ậ
è	è
é	é
ẻ	ẻ
ẽ	ẽ
ẹ	ẹ
ề	ề
ế	ế
ể	ể
ễ	ễ
ệ	ệ
ì	ì
í	í
ỉ	ỉ
ĩ	ĩ
ị	ị
ò	ò
ó	ó
ỏ	ỏ
õ	õ
ọ	ọ
ồ	ồ
ố	ố
ổ	ổ
ỗ	ỗ
ộ	ộ
ờ	ờ
ớ	ớ
ở	ở
ỡ	ỡ
ợ	ợ
ù	ù
ú	ú
ủ	ủ
ũ	ũ
ụ	ụ
ừ	ừ
ứ	ứ
ử	ử
ữ	ữ
ự	ự
ỳ	ỳ
ý	ý
ỷ	ỷ
ỹ	ỹ
ỵ	ỵ
ð	đ  // Ð U+0d0
ɖ	đ  // Ɖ U+189
//================================
//  Consonants
//================================
.L01 t c ne nd k x s nt ch th me te le ce ny ry e o u re nch de p pe ph sh v ve ge r
.L02 n a
.L03 ch nh
.L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ
.L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ
.group b
        b          b
     _) b          _b
//b($w_alt2 _^_EN
        
 
.group c
        c          g         //k
        c (C       _^_EN
        c (_       c
     _) ch         tS       // try [tS;] [tS] [c] c     
?2   _) ch         c
?1   _) ch         c         
        ch (_      c         
        ce (_      _^_EN
     _) cl         _^_EN
	    c (L05			kh
    		
 
 
.group d
        d          z         // try [z] [J] [dZ] [dZ;] [J^]
?2      d          J^
?1      d          J^
        
 
        d (_       _^_EN
        
 
        
 
        
 
.group đ
      //  đ          d
     _) đ          d_
        
 
        
 
        
 
.group f
        //f          f
     _) f          _^_EN
        f (_       _^_EN
        
 
        
 
.group g
        g (L04     Q         // try [g] [Q]
        gh         Q         // or [g]  [Q]
        gi         z         // try [D] [z] [j] [J^] [z;] [J] [dZ]
        g (ì       z
        g (í       z
        g (ỉ       z
        g (ĩ       z
        g (ị       z
     _) g          _^_EN
?1      g (ì       J^
?1      g (í       J^
?1      g (ỉ       J^
?1      g (ĩ       J^
?1      g (ị       J^        
        
 
?2      g (ì       J^
?2      g (í       J^
?2      g (ỉ       J^
?2      g (ĩ       J^
?2      g (ị       J^        
        
 
?1      gi         J^
?2      gi         J^        
?1      giết       J^'iE3g
?2      giết       J^'iE3g
?1      giếng      J^'iE3N
?1      giềng      J^'iE2N
?2      giếng      J^'iE3N
?1      giêng      J^'iE1N
?2      giêng      J^'iE1N
?2      giềng      J^'iE2N
        giết       z'iE3t[
        giếc       z'iE3kh
        giêng      z'iE1N
        giềng      z'iE2N
        giếng      z'iE3N
        giểng      z'iE4N
        giễng      z'iE5N
        giệng      z'iE6N
        
 
?1      giệt       J^'iE6g
        giệt       z'iE6t[
        giệc       z'iE6kh
     _) gol        _^_EN
     _) gat        _^_EN     
        ght (_     _^_EN     
        
 
        
 
.group h
        h          h
?2      hu         w         
        
 
.group j
        j          Z
        
 
        
 
.group k
     _) k          g
     _) kh         x
        //kh         x
        k (_       _^_EN
        
 
        
 
.group l
        l          l
        l (_       _^_EN
     C) le         _^_EN
	   //le (A      _^_EN 
        
 
        
 
.group m
        m          m
        
 
        
 
.group n
        n          n
?1      n (_       N         //n
?2      n (_       N
        ng         N
        ngh        N
        nh         n^
?2 L02) nh         n         
        nd (_      _^_EN
        
 
        
 
.group ñ
        ñ          n^
        
 
        
 
.group p
        p (C       _^_EN
        p          p         
        ph         f
        
 
        
 
.group q
        q          g
        q (_       kh
        qu         khw         //kw
        
 
        
 
.group r
        r          z         // try [z] [z.] [r] [z;]
?2      r          Q         
?1      r          z.        
        r (_       _^_EN
        rm (_      _^_EN
        
 
        
 
.group s
        s          s       // try [s.] [s] [S]
        
 
     _) sh         _^_EN
        s (_       _^_EN
        st (_      _^_EN
        
 
        
 
.group t
        t          t[
?1      t (_       kh
?2      t (_       kh        
        th         t
        tr         tS        //cr        // try [cr] [tr] [tS;] [tS] [c] [dZ] [dz;]
?1      tr         cr        
?2      tr         c         
        ts (_      _^_EN
        th (_      _^_EN
        tt (_      _^_EN
        
 
        
 
.group v
        v          v
?2      v          J^        
        ve (A      _^_EN     
        
 
        
 
.group w
        w          w
     _) w          _^_EN
        w (_       _^_EN
        
 
        
 
.group x
        x          s
        x (_       _^_EN
        
 
        
 
.group z
        z          z
        z (_       _^_EN
        
 
        
 
//================================
//  Vowels
//================================
        
 
        
 
        
 
.group a
        a          a:
        ai         a:I
        aì         a:I2
        aí         a:I3
        aỉ         a:I4
        aĩ         a:I5
        aị         a:I6
        ay         aI
?2      ay         a:I       
        
 
        
 
        aý         aI3
        aỷ         aI4
        aỹ         aI5
        aỵ         aI6
        ao         a:U
        aò         a:U2
        aó         a:U3
        aỏ         a:U4
        aõ         a:U5
        aọ         a:U6
        au         aU
?2      au         a:U
        aù         aU2
        aú         aU3
        aủ         aU4
        aũ         aU5
        aụ         aU6
        a (L01     _^_EN
        ai (L02    _^_EN
        a (@       _^_EN
        a (L03     a
 
.group à
        à          a:2
        ài         a:I2
        ày         aI2
?2      ày         a:I2
        
 
        
 
        
 
        
 
        ào         a:U2
        àu         aU2
?2      àu         a:U2
        
 
.group á
        á          a:3
        ái         a:I3
        áy         aI3
        áo         a:U3
        áu         aU3
?2      áu         a:U3      
?2      áy         a:I3
.group ả
        ả          a:4
        ải         a:I4
        ảy         aI4
        ảo         a:U4
        ảu         aU4
?2      ảu         a:U4      
?2      ảy         a:I4      
.group ã
        ã          a:5
        ãi         a:I5
        ãy         aI5
        ão         a:U5
        ãu         aU5
?2      ãu         a:U5      
?2      ãy         a:I5
.group ạ
        ạ          a:6
        ại         a:I6
        ạy         aI6
        ạo         a:U6
        ạu         aU6
?2      ạu         a:U6      
?2      ạy         a:I6      
        
 
//================================
.group ă
        ă          a
        
 
        
 
        
 
.group ằ
        ằ          a2
        
 
        
 
        
 
.group ắ
        ắ          a3
        ắk          a3c
 
        
 
        
 
.group ẳ
        ẳ          a4
        
 
        
 
        
 
.group ẵ
        ẵ          a5
        
 
        
 
        
 
.group ặ
        ặ          a6
        
 
        
 
//=================================
.group â
        â          @
        ây         @I
        âu         @U1       
?2      â (L03     a         
?1      â (L03     a         
        
 
        
 
.group ầ
        ầ          @2
        ầy         @I2
        ầu         @U2
?2      ầ (L03     a2        
?1      ầ (L03     a2        
        
 
        
 
.group ấ
        ấ          @3
        ấy         @I3
        ấu         @U3
?2      ấ (L03     a3        
?1      ấ (L03     a3        
        
 
        
 
.group ẩ
        ẩ          @4
        ẩy         @I4
        ẩu         @U4
        
 
        
 
        
 
.group ẫ
        ẫ          @5
        ẫy         @I5
        ẫu         @U5
        
 
        
 
        
 
.group ậ
        ậ          @6
        ậy         @I6
        ậu         @U6
?2      ậ (L03     a6        
?1      ậ (L03     a6        
        
 
//===========================
.group e
        e          E
        eo         EU
        eò         EU2
        eó         EU3
        eỏ         EU4
        eỗ         EU5
        eọ         EU6
        e (L01     _^_EN
        ey (_      _^_EN
        e (@       _^_EN     
        
 
.group è
        è          E2
        èo         EU2
        
 
        
 
        
 
.group é
        é          E3
        éo         EU3
        
 
        
 
        
 
.group ẻ
        ẻ          E4
        ẻo         EU4
        
 
        
 
        
 
.group ẽ
        ẽ          E5
        ẽo         EU5
        
 
        
 
        
 
.group ẹ
        ẹ          E6
        ẹo         EU6
        
 
        
 
//============================
        
 
.group ê
        ê          e
        êu         eU1
?2      ê (L03     @:        
?2      ê (L02     @:        
        
 
.group ề
        ề          e2
        ều         eU2
?2      ề (L03     @:2       
?2      ề (L02     @:2
        
 
.group ế
        ế          e3
        ếu         eU3
        
 
?2      ế (L03     @:3
?2      ế (L02     @:3
.group ể
        ể          e4
        ểu         eU4
?2      ể (L03     @:4       
?2      ể (L02     @:4       
        
 
.group ễ
        ễ          e5
        ễu         eU5
?2      ễ (L03     @:5       
?2      ễ (L02     @:5
        
 
.group ệ
        ệ          e6
        ệu         eU6
?2      ệ (L03     @:6
?2      ệ (L02     @:6
        
 
//============================
        
 
.group i
        i          i
        //i (A       j
        ia         i@
        ià         i@2
        iá         i@3
        iả         i@4
        iã         i@5
        iạ         i@6
        iê         iE
        iề         iE2
        iế         iE3
        iể         iE4
        iễ         iE5
        iệ         iE6
        iu         iU
        iù         iU2
        iú         iU3
        iủ         iU4
        iũ         iU5
        iụ         iU6
        iêu        iU
        iều        iU2
        iếu        iU3
        iểu        iU4
        iễu        iU5
        iệu        iU6
        i (L01     _^_EN
        i (@       _^_EN
?2      i (L03     @         
?1      i (L03     @
?2      i (L02     @         
.group ì
        ì          i2
        ì (A       j2
        ìa         i@2
        ìu         iU2
?2      ì (L03     @2        
?1      ì (L03     @2        
?2      ì (L02     @2
.group í
        í          i3
        í (A       j3
        ía         i@3
        íu         iU3
?2      í (L03     @3        
?1      í (L03     @3
?2      í (L02     @3
.group ỉ
        ỉ          i4
        ỉ (A       j4
        ỉa         i@4
        ỉu         iU4
?2      ỉ (L03     @4        
?1      ỉ (L03     @4
?2      ỉ (L02     @4        
        
 
.group ĩ
        ĩ          i5
        ĩ (A       j5
        ĩa         i@5
        ĩu         iU5
?2      ĩ (L03     @5        
?1      ĩ (L03     @5
?2      ĩ (L02     @5        
        
 
.group ị
        ị          i6
        ị (A       j6
        ịa         i@6
        ịu         iU6
?2      ị (L03     @6        
?1      ị (L03     @6
?2      ị (L02     @6
        
 
//=========================
        
 
.group o
        o          O
        oa         o@        // modify oa sound  example: hoa,khoa // o (A       w
        oà         o@2
        oá         o@3
        oả         o@4
        oã         o@5
        oạ         o@6
        oo         O
        oi         OI
        oì         OI2
        oí         OI3
        oỉ         OI4
        oĩ         OI5
        oị         OI6
        ong        O#
        oe         o&        // Adding  oe sound  example: lóe sáng,toét mắt
        oai        Oi        // oai sound
        o (@       _^_EN
        oại        Oi6
        oài        Oi2
        oái        Oi3
        oải        Oi4
        oãi        Oi5
        oă         o@1
        oằ         o@2
        oắ         o@3
        oẳ         o@4
        oẵ         o@5
        oặ         o@6
		oc		   O#c
.group ò
        ò          O2
        òi         OI2
        òa         o@2       //ò (A       w2
        òng        O#2
        òe         o&2
        
 
        
 
        
 
.group ó
        ó          O3
        ói         OI3
        óa         o@3       //ó (A       w3
        óng        O#3
        óe         o&3
        óc		   O#3c
 
        
 
        
 
.group ỏ
        ỏ          O4
        ỏi         OI4
        ỏa         o@4       //ỏ (A       w4
        ỏng        O#4
        ỏe         o&4
        
 
        
 
        
 
.group õ
        õ          O5
        õi         OI5
        õa         o@5       //õ (A       w5
        õng        O#5
        õe         o&5
        
 
        
 
        
 
.group ọ
        ọ          O6
        ọi         OI6
        ọa         o@6       //ọ (A       w6
        ọng        O#6
        ọe         o&6
        ọc		   O#6c
 
        
 
        
 
//=============================
        
 
.group ô
        ô          o
        ôi         oI
        ông        o#        // ông sound
?2      ôi         O-        //south dialect 
        
 
.group ồ
        ồ          o2
        ồi         oI2
        ồng        o#2
?2      ồi         O-2       
        
 
        
 
.group ố
        ố          o3
        ối         oI3
        ống        o#3
?2      ối         O-3       
        
 
        
 
.group ổ
        ổ          o4
        ổi         oI4
        ổng        o#4
?2      ổi         O-4       
        
 
        
 
.group ỗ
        ỗ          o5
        ỗi         oI5
        ỗng        o#5
        
 
?2      ỗi         O-5
        
 
.group ộ
        ộ          o6
        ội         oI6
   //     ộng        o#6
?2      ội         O-6       
        
 
        
 
//=============================
        
 
.group ơ
        ơ          @:
        ơi         @:I
        ơu         @:U
?2      ơi         @-        //south dialect 
        
 
        
 
.group ờ
        ờ          @:2
        ời         @:I2
        ờu         @:U2
?2      ời         @-2       
        
 
        
 
.group ớ
        ớ          @:3
        ới         @:I3
        ớu         @:U3
?2      ới         @-3       
        
 
        
 
.group ở
        ở          @:4
        ởi         @:I4
        ởu         @:U4
?2      ởi         @-4       
        
 
        
 
.group ỡ
        ỡ          @:5
        ỡi         @:I5
        ỡu         @:U5
?2      ỡi         @-5       
        
 
        
 
.group ợ
        ợ          @:6
        ợi         @:I6
        ợu         @:U6
?2      ợi         @-6       
        
 
        
 
//=============================
        
 
.group u
        u          u
        u (A       w
     A) u          w
        ui         uI
        uì         uI2
        uí         uI3
        uỉ         uI4
        uĩ         uI5
        uị         uI6
        ua         u@
        uà         u@2
        uá         u@3
        uả         u@4
        uã         u@5
        uạ         u@6
        uô         u@
        uồ         u@2
        uố         u@3
        uổ         u@4
        uỗ         u@5
        uộ         u@6
        uôi        u@j
        uồi        u@j2
        uối        u@j3
        uổi        u@j4
        uỗi        u@j5
        uội        u@j6
        //ung        u#
        u (L01     _^_EN
        u (@       _^_EN
       // ua (L01    _^_EN
?2      u          u-        
        
 
.group ù
        ù          u2
        ù (A       w2
        ùi         uI2
        ùa         u@2
		//ùng        u#2
        
 
?2      ù          u-2       
        
 
.group ú
        ú          u3
        ú (A       w3
        úi         uI3
        úa         u@3
		//úng        u#3
?2      ú          u-3       
        
 
        
 
.group ủ
        ủ          u4
        ủ (A       w4
        ủi         uI4
        ủa         u@4
		//ủng        u#4
        
 
?2      ủ          u-4       
        
 
.group ũ
        ũ          u5
        ũ (A       w5
        ũi         uI5
        ũa         u@5
		//ũng        u#5
?2      ũ          u-5       
        
 
        
 
.group ụ
        ụ          u6
        ụ (A       w6
        ụi         uI6
        ụa         u@6
		//ụng        u#6
?2      ụ          u-6       
        
 
//=============================
        
 
.group ư
        ư          y
        ưi         yI
        ưa         y@
        ươ         y@
        ườ         y@2
        ướ         y@3
        ưở         y@4
        ưỡ         y@5
        ượ         y@6
        ưu         yw
        ươi        y@j
        ười        y@j2
        ưới        y@j3
        ưởi        y@j4
        ưỡi        y@j5
        ượi        y@j6
        ươu        y@w
        ườu        y@w2
        ướu        y@w3
        ưởu        y@w4
        ưỡu        y@w5
        ượu        y@w6
        
 
        
 
        
 
.group ừ
        ừ          y2
        ừi         yI2
        ừa         y@2
        ừu         y2w2
        
 
        
 
        
 
.group ứ
        ứ          y3
        ứi         yI3
        ứa         y@3
        ứu         y3w3
        
 
        
 
        
 
.group ử
        ử          y4
        ửi         yI4
        ửa         y@4
        ửu         y4w4
        
 
        
 
        
 
.group ữ
        ữ          y5
        ữi         yI5
        ữa         y@5
        ữu         y5w5
        
 
        
 
        
 
.group ự
        ự          y6
        ựi         yI6
        ựa         y@6
        ựu         y6w6
        
 
        
 
//=============================
        
 
.group y
        y          i
       // y (A       j
        ya         i@
        yà         i@2
        yá         i@3
        yả         i@4
        yã         i@5
        yạ         i@6
        yê         i@
        yề         i@2
        yế         i@3
        yể         i@4
        yễ         i@5
        yệ         i@6
      //  yêu        i@U        
        y (L01     _^_EN
    bu) y          _^_EN
.group ỳ
        ỳ          i2
        ỳ (A       j2
        ỳa         i@2
        
 
        
 
        
 
.group ý
        ý          i3
        ý (A       j3
        ýa         i@3
        
 
        
 
        
 
.group ỷ
        ỷ          i4
        ỷ (A       j4
        ỷa         i@4
        
 
        
 
        
 
.group ỹ
        ỹ          i5
        ỹ (A       j5
        ỹa         i@5
        
 
        
 
        
 
.group ỵ
        ỵ          i6
        ỵ (A       j6
        ỵa         i@6
        
 
        
 
//=============================
        
 
.group 0xce   // Greek letters
// 0xce is the first byte of the utf-8 code for these characters
        
 
        
 
        α          a:1n_|f'a:1
        ά          a:1n_|f'a:1
        β          b'e1_|t['a:1
        γ          Q'a:1_|m'a:1
        δ          J'E1n_|t['a:1
        ε          E1p_|s'i1_|l'O1n
        έ          E1p_|s'i1_|l'O1n
        ζ          D'e1_|t['a:1
        η          e1_|t['a:1
        ή          e1_|t['a:1
        θ          t'e1_|t['a:1
        ι          i1_|'o1_|t['a:1
        ί          i1_|'o1_|t['a:1
        κ          k'a:1p_|p'a:1
        λ          l'a1m_|_d'a:1
        μ          mw'i1
        ν          nw'i1
        ξ          s'i7
        ο          o1_|m'i1_|kz.'O7n
        
 
        
 
        
 
.group 0xcf   // Greek letters
        
 
        
 
        π          p'i1
        ρ          z.'o1
        σ          s'i3c_|m'a:1
        ς          s'i3c_|m'a:1
        τ          t['o1
        υ          u1p_|s'i1_|l'O1n
        ύ          u1p_|s'i1_|l'O1n
        φ          f'i1
        χ          c'i1
        ψ          ps'i1
        ω          o1_|m'e1_|Q'a:7
        ώ          o1_|m'e1_|Q'a:7
        ό          o1_|m'i1_|kz.'O7n
        
 
        
 
        
 
        
 
        
 
.group
        %          f'@2n||cr'am
        !          _:c'@3m_|t'a:7n_:
        ! (\!      
//            :            koUl@n
    D_) h (_DD_    D'@:2     // omit colon in time, eg: 2:30
        $          d'o||l'a
        !=         x'o#_|_b'a2N_
        >=         l'@:3n_|h'@:1n_|hw,a6kh_b'a2N
        <=         n^'O4_|h'@:1n_|hw,a6kh_b'a2N
        
 
        
 
    __) - (_D      cr'y2
    A_) - (_D      _
    C_) - (_D      _
        
 
        .          c'@3m_
        . (.       _:
    \.) .          
        
 
 |