o
    Ni;                    @   s2   d dl mZ d dlZd dlmZ G dd dZdS )    )unicode_literalsNunichrc                   @   s  e Zd ZdZdaddZdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Z d>d? Z!d@dA Z"dBdC Z#dDdE Z$dFdG Z%dHdI Z&dJdK Z'dLdM Z(dNdO Z)dPdQ Z*dRdS Z+dTdU Z,dVdW Z-dXdY Z.dZd[ Z/d\d] Z0d^d_ Z1d`S )bWXu  WX-converter for UTF to WX conversion of Indic scripts and vice-versa.

    Parameters
    ----------
    lang : str, default: hin
        Input script

    order : str, default: utf2wx
        Order of conversion

    Examples
    --------
    >>> from indictrans import WX
    >>> wxc = WX(lang='hin', order='utf2wx')
    >>> hin_utf = u'''बीजेपी के सांसद सुब्रमण्यम स्वामी ने कुछ ही दिन पहले
    ... अपनी ही सरकार को कठघरे में खड़ा करते हुए जीडीपी आंकड़ों पर
    ... सवाल उठाए हैं.'''
    >>> hin_wx = wxc.utf2wx(hin_utf)
    >>> print(hin_wx)
    bIjepI ke sAMsaxa subramaNyama svAmI ne kuCa hI xina pahale
    apanI hI sarakAra ko kaTaGare meM KadZA karawe hue jIdIpI AMkadZoM para
    savAla uTAe hEM.
    >>> wxc = WX(lang='hin', order='wx2utf')
    >>> hin_utf_ = wxc.wx2utf(hin_wx)
    >>> print(hin_utf_)
    बीजेपी के सांसद सुब्रमण्यम स्वामी ने कुछ ही दिन पहले
    अपनी ही सरकार को कठघरे में खड़ा करते हुए जीडीपी आंकड़ों पर
    सवाल उठाए हैं.
    >>> wxc = WX(lang='mal', order='utf2wx')
    >>> mal_utf = u'''വിപണിയിലെ ശുഭാപ്തിവിശ്വാസക്കാരായ കാളകള്‍ക്ക് അനുകൂലമായ
    ... രീതിയിലാണ് ബി എസ് ഇയില്‍ വ്യാപാരം നടക്കുന്നത്.'''
    >>> mal_wx = wxc.utf2wx(mal_utf)
    >>> print(mal_wx)
    vipaNiyileV SuBApwiviSvAsakkArAya kAlYakalYkk anukUlamAya
    rIwiyilAN bi eVs iyil vyApAraM natakkunnaw.
    >>> wxc = WX(lang='mal', order='wx2utf')
    >>> mal_utf_ = wxc.wx2utf(mal_wx)
    >>> print(mal_utf_)
    വിപണിയിലെ ശുഭാപ്തിവിശ്വാസക്കാരായ കാളകള്ക്ക് അനുകൂലമായ
    രീതിയിലാണ് ബി എസ് ഇയില് വ്യാപാരം നടക്കുന്നത്.
    utf2wxhinc                 C   s   || _ | | _|   d S )N)orderlowerlang_tagfit)selfr   lang r   H/home/ubuntu/.local/lib/python3.10/site-packages/indictrans/_utils/wx.py__init__6   s   
zWX.__init__c              	   C   s   d| _ ttdd tddD dd tddD | _ttd	d tddD d
d tddD | _td| _tdd	dd tddD  | _
| jdkrW|   d S | jdkrb|   d S td)Nz$!"#$%&\'()*+,-./:;<=>?@\[\\\]^_`{|}~c                 S      g | ]}t |qS r   r   .0ir   r   r   
<listcomp>@       zWX.fit.<locals>.<listcomp>      c                 S      g | ]}d t | qS z%sr   r   r   r   r   r   A       i,  i  c                 S   r   r   r   r   r   r   r   r   D   r   c                 S   r   r   r   r   r   r   r   r   E   r   	   ([¡-û])z(%s)|c                 S   r   r   r   r   r   r   r   r   H   r   r   wx2utfzinvalid source/target encoding
)punctuationdictziprange	iscii_num	num_isciirecompilemask_iscjoin
unmask_iscr   initialize_utf2wx_hashinitialize_wx2utf_hash
ValueErrorr   r   r   r   r   ;   s,   



zWX.fitc                 C   s  i ddddddddd	d
dddddddddddddddddddddd d!d"i d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdL| _ i dMdNdOdPdQdPdRdSdTdSdUdVdWdVdXdYdZdYd[d\d]d\d^d_d`d_dadbdcdbdddedfdedgdgdhdhdididjdjdkdkdldldm| _i dOdndQdndRdodTdodUdpdWdpdXdqdZdqd[drd]drd^dsd`dsdadtdcdtdddudfdudvdwdwdxdxdydydzdzd{d{d|d|d}| _d~ddd| _ddddddddddd
| _i d~ddddddNddPddSddVddYdd\dd_ddbddeddgddhddiddjddkdi dldddddddddd
dddddddddddddddddddddd di d"dd$dd&dd(ddJdd*dd,dd.dd0dd2dd4dd6ddIdd8ddHddKdd:di d<dd@dd>ddBdÓdndēdodœdpdƓdqdǓdrdȓdsdɓdtdʓdud˓dwd̓dxd͓dydΓdzdϓd{dГdddddddddddddddߜ| _i d~ddddddNddPddSddVddYdd\dd_ddbddeddgddiddjddkdddi ddddddd
dddddddddddddddddddddd dd"d d$di d&dd(dd*dd,dd.dd0dd2dd4d	d6d
dIdd8ddHdd:dd<dd@dd>ddBdi dnddoddpddqddrddsddtdduddwddyddzdd{ddDddFdԓdd dd!dd"d#d$d%d&d'd(d)d*| _i d~d+dd,dd-dNd.dPd/dSd0dVd1dYd2d\d3d_d4dbd5ded6dgd7did8djd9dkd:dld;i dd<dd=dd>dd?d
d@ddAddBddCddDddEddFddGddHddIddJd dKd"dLi d$dMd&dNd(dOdJdPd*dQd,dRd.dSd0dTd2dUd4dVd6dWdIdXd8dYdHdZdKd[d:d\d<d]i d@d^d>d_dBd`dndadodbdpdcdqdddrdedsdfdtdgdudhdwdidxdjdydkdzdld{dmd|dndodpdԐdqdrdsdtdudvdwdxdydzd{d|| _i dd}dd~dNddPddSddVddYdd\dd_ddhddbddeddgddlddiddjddkdi ddddddddd
dddddddddddddddddddddd dd"di d$dd&dd(ddJdd*dd,dd.dd0dd2dd4dd6ddIdd8ddHddKdd:dd<di d@dd>ddBddEddnddoddpddqddrddsddtdduddwdd|ddyddzdd{dddԐddÐdĐdŐdƐdǐdȐdɐdʐdːd̜| _i dd͓ddΓdNdϓdPdГdSdѓdVdғdYdӓd\dԓd_dՓdbd֓dedדdgdؓdidٓdjdړdkdۓdldܓddݓi ddޓddߓddd
dddddddddddddddddddddd dd"dd$di d&dd(ddJdd*dd,dd.dd0dd2dd4dd6ddIdd8ddHddKdd:dd<dd@di d>d dBddnddoddpddqddrddsddtddud	dwd
dyddzdd{ddDddFdԓdddddddddddd	| _	i d~ddddddNddPddSddVd dYd!d\d"d_d#dbd$dgd%did&dkd'dd(dd)dd*i dd+d
d,dd-dd.dd/dd0dd1dd2dd3dd4dd5dd6d d7d"d8d$d9d&d:d(d;i d*d<d,d=d.d>d0d?d2d@d4dAd6dBd8dCd<dDd@dEd>dFdBdGdndHdodIdpdJdqdKdrdLi dsdMdtdNdwdOdydPd{dQdDdRdEdSdFdԓddTddUddVddWddXddYddZdd[dd\dd]i| _
i dd^dd_dNd`dPdadSdbdVdcdYddd\dedbdfdedgdgdhdididjdjdkdkddld
dmddni ddoddpddqddrd dsd(dtdJdud*dvd2dwd4dxd6dydIdzd8d{dHd|dKd}d:d~d<di d@dd>ddBddnddoddpddqddrddtdduddwddyddzdd{ddDddFdԓdddddddddddd	| _i d~ddddddNddPddSddVddYdd\dd_ddeddgddjddkdddddddi ddd
dddddddddddddddddddddd dd"dd$dd&dd(di d*dd,dd.dd0dd2dd4dd6dd8ddHdd:dÓd<dēd@dœd>dƓdBdǓdndȓdodɓdpdʓi dqd˓drd̓dsd͓dudΓdwdϓdzdГd{dѓdDdғdEdӓdFdԓddԓddՓdd֓ddדddؓddٓddړdېdܐdݐdޜ| _i d~dߓdddddNddPddSddVddYdd\dd_ddhddeddgddjddkddldddi ddddddd
dddddddddddddddddddddd dd"dd$d i d&dd(dd*dd,dd.dd0dd2dd4dd6d	d8d
dHdd:dd<dd@dd>ddBddEdi dnddoddpddqddrddsdduddwddxddzdd{dd|ddDddFdԓdddd dd!d"d#d$d%d&d'd(d*| _d)}td*| | _td+| | _td,| | _td-| | _td.| | _td/| | _td0| | _td1| | _td2| | _td3| | _td4| | _td5| | _td6| | _td7| | _td8| | _td9| | _td:| | _ td;| | _!td<| | _"td=| | _#td>| | _$td?| | _%td@| | _&tdA| | _'tdB| | _(tdC| _)tdD| | _*tdE| | _+tdF| _,tdG| _-tdH| _.d S (I  Nk   ³K   ´g   µG   ¶f   ·c   ¸C   ¹j   ºJ   »F   ¼t   ½T   ¾d   ¿D   ÀN   Áw   ÂW   Ãx   ÄX   Ån   Æp   ÈP   Éb   ÊB   Ëm   Ìy   Ír   Ïl   Ñv   ÔS   Õs   ×R   Öh   Ø_   è   é   ê   û   Ò   Ð   Ç   Ó)Z.YlYrYnYlYYa   ¤A   ¥aAr      ¦aiI   §aIu   ¨auU   ©aUq   ªaqeV   «aeVe   ¬ae   ­   ®   ¯   °   ±   ²)EaEEYaEYoVaoVoaoOaOOYaOY   Ú   Û   Ü   Ý   Þ   ß   à   ár      â   ã   ä   å   æ   ç)r   r   r   r   r   r   r   r   r   r   r      ¡   ¢   £)zMH   ñ   ò   ó   ô   õ   ö   ÷   ø   ù   ú)
0123456789   ँ   ं   ः   अ   आ   इ   ई   उ   ऊ   ऋ   ऎ   ए   ऐ   ऍ   ऒ   ओ   औ   ऑ   क   ख   ग   घ   ङ   च   छ   ज   झ   ञ   ट   ठ   ड   ढ   ण   त   थ   द   ध   न   ऩ   प   फ   ब   भ   म   य   र   ऱ   ल   ळ   ऴ   व   श   ष   स   ह   ा   ि   ी   ु   ू   ृ   ॆ   े   ैu   ॅ   ॊ   ो   ौ   ॉ   ्   ़rz      ०   १   २   ३   ४   ५   ६   ७   ८   ९)r   rq   rr   rs   r   r   r   r   r   r   r   r   r   r      ఁ   ం   ః   అ   ఆ   ఇ   ఈ   ఉ   ఊ   ఋ   ఎ   ఏ   ఐ   ఒ   ఓ   ఔ   క   ఖ   గ   ఘ   ఙ   చ   ఛ   జ   ఝ   ఞ   ట   ఠ   డ   ఢ   ణ   త   థ   ద   ధ   న   ప   ఫ   బ   భ   మ   య   ర   ఱ   ల   ళ   వ   శ   ష   స   హ   ా   ి   ీ   ు   ూ   ృ   ె   ే   ై   ొ   ో   ౌ   ్   ౦   ౧   ౨   ౩   ౪   ౫   ౬   ౭   ౮   ౯)r   r   r   r   r   r   r      ੰ   ਂ   ਃ   ਅ   ਆ   ਇ   ਈ   ਉ   ਊ   ਋   ਎   ਏ   ਐ   ਒   ਓ   ਔ   ਑   ਕ   ਖ   ਗ   ਘ   ਙ   ਚ   ਛ   ਜ   ਝ   ਞ   ਟ   ਠ   ਡ   ਢ   ਣ   ਤ   ਥ   ਦ   ਧ   ਨ   ਩   ਪ   ਫ   ਬ   ਭ   ਮ   ਯ   ਰ   ਱   ਲ   ਲ਼   ਴   ਵ   ਸ਼   ਷   ਸ   ਹ   ਾ   ਿ   ੀ   ੁ   ੂ   ੃   ੆   ੇ   ੈu   ੅   ੊   ੋ   ੌ   ੉   ੍   ਼   ੦   ੧   ੨   ੩   ੪   ੫   ੬   ੭   ੮   ੯   ੱ)rq   rr   rs   r   r   r   r   r   r   r   r   r   r   rt      ಂ   ಃ   ಅ   ಆ   ಇ   ಈ   ಉ   ಊ   ಋ   ಍   ಎ   ಏ   ಐ   ಑   ಒ   ಓ   ಔ   ಕ   ಖ   ಗ   ಘ   ಙ   ಚ   ಛ   ಜ   ಝ   ಞ   ಟ   ಠ   ಡ   ಢ   ಣ   ತ   ಥ   ದ   ಧ   ನ   ಩   ಪ   ಫ   ಬ   ಭ   ಮ   ಯ   ರ   ಱ   ಲ   ಳ   ಴   ವ   ಶ   ಷ   ಸ   ಹ   ಼   ಾ   ಿ   ೀ   ು   ೂ   ೃ   ೆ   ೇ   ೈ   ೉   ೊ   ೋ   ೌ   ್   ೦   ೧   ೨   ೩   ೪   ೫   ೬   ೭   ೮   ೯)rq   rs   r   r   r   r   r   r   r   r   r   r      ം   ഃ   അ   ആ   ഇ   ഈ   ഉ   ഊ   ഋ   എ   ഏ   ഐ   ഒ   ഓ   ഔ   ഑   ക   ഖ   ഗ   ഘ   ങ   ച   ഛ   ജ   ഝ   ഞ   ട   ഠ   ഡ   ഢ   ണ   ത   ഥ   ദ   ധ   ന   ഩ   പ   ഫ   ബ   ഭ   മ   യ   ര   റ   ല   ള   ഴ   വ   ശ   ഷ   സ   ഹ   ാ   ി   ീ   ു   ൂ   ൃ   െ   േ   ൈ   ൊ   ോ   ൌ   ്   ൦   ൧   ൨   ൩   ൪   ൫   ൬   ൭   ൮   ൯)	r   r   r   r   r   r   r   r   r      ঁ   ং   ঃ   অ   আ   ই   ঈ   উ   ঊ   ঋ   এ   ঐ   ও   ঔ   ক   খ   গ   ঘ   ঙ   চ   ছ   জ   ঝ   ঞ   ট   ঠ   ড   ঢ   ণ   ত   থ   দ   ধ   ন   প   ফ   ব   ভ   ম   য   র   ল   শ   ষ   স   হ   া   ি   ী   ু   ূ   ৃ   ে   ৈ   ো   ৌ   ্   ়   ০   ১   ২   ৩   ৪   ৫   ৬   ৭   ৮   ৯u   ம்   ஃ   அ   ஆ   இ   ஈ   உ   ஊ   எ   ஏ   ஐ   ஒ   ஓ   ஔ   க   ங   ச   ஜ   ஞ   ட   ண   த   ந   ன   ப   ம   ய   ர   ற   ல   ள   ழ   வ   ஷ   ஸ   ஹ   ா   ி   ீ   ு   ூ   ெ   ே   ை   ொ   ோ   ௌ   ்   ௦   ௧   ௨   ௩   ௪   ௫   ௬   ௭   ௮   ௯   ଁ   ଂ   ଃ   ଅ   ଆ   ଇ   ଈ   ଉ   ଊ   ଋ   ଏ   ଐ   ଓ   ଔ   କ   ଖ   ଗ   ଘ   ଙ   ଚ   ଛ   ଜ   ଝ   ଞ   ଟ   ଠ   ଡ   ଢ   ଣ   ତ   ଥ   ଦ   ଧ   ନ   ପ   ଫ   ବ   ଭ   ମ   ଯ   ର   ଲ   ଳu   ଵ   ଶ   ଷ   ସ   ହ   ା   ି   ୀ   ୁ   ୂ   ୃ   େ   ୈ   ୋ   ୌ   ୍   ଼   ୦   ୧   ୨   ୩   ୪   ୫   ୬   ୭   ୮   ୯)r   r   r      ઁ   ં   ઃ   અ   આ   ઇ   ઈ   ઉ   ઊ   ઋ   ઍ   એ   ઐ   ઓ   ઔ   ઑ   ક   ખ   ગ   ઘ   ઙ   ચ   છ   જ   ઝ   ઞ   ટ   ઠ   ડ   ઢ   ણ   ત   થ   દ   ધ   ન   પ   ફ   બ   ભ   મ   ય   ર   લ   ળ   વ   શ   ષ   સ   હ   ઼   ા   િ   ી   ુ   ૂ   ૃ   ે   ૈu   ૅ   ો   ૌ   ૉ   ્   ૦   ૧   ૨   ૩   ૪   ૫   ૬   ૭   ૮   ૯!kKgGfcCjJFtTdDNwWxXnpPbBmyrlvSsRhz([%s])eV([MHz])z([%s])eVz	([%s])ZeVz([%s])ZeV([MHz])z([%s])EY([MHz])z([%s])EYz([%s])OY([MHz])z([%s])oV([MHz])z([%s])oVz	([%s])ZoVz([%s])ZoV([MHz])z([%s])OYz	([%s])ZOYz([%s])([AiIuUeEoO])([MHz])z([%s])Z([AiIuUeEoO])([MHz])z([%s])([AiIuUeEoO])z([%s])Z([AiIuUeEoO])z([%s])a([MHz])z([%s])Za([MHz])z([%s])Z([MHz])z([%s])az([%s])Zaz	([%s])YZaz([%s])z([%s])Zz	aq([MHz])z([%s])qz([%s])q([MHz])zq([MHz])z([0-9])r   )/	hashc_w2i	hashv_w2i	hashm_w2i
hashmd_w2i
digits_w2i	hashh_i2u	hasht_i2u	hashp_i2u	hashk_i2u	hashm_i2u	hashb_i2uhashcta_i2u	hasho_i2u	hashg_i2ur%   r&   ceVmdceVcZeVcZeVmdcEYmdcEYcOYmdcoVmdcoVcZoVcZoVmdcOYcZOYcvmdcZvmdcvcZvcamdcZamdcZmdcacZacYZar8   cZaqmdcqcqmdqmddigi2u)r   constr   r   r   r+   P   s  	
 !"#
-	

 	

 	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF
U	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEM	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFU	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDER	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEO	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEG	
 !"#$%&'()*+,-./01234>	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEI	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFPzWX.initialize_wx2utf_hashc                 C   s  i ddddddddd	d
dddddddddddddddddddddd d!d"i d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdI| _ dJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdY| _dKdLdMdNdOdPdQdRdSdTdUdVdWdXdZ| _d[d\d]d^| _d_d`dadbdcdddedfdgdhdi
| _i djdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddi dddddddddddd	ddddddddddddddddddddddi dd!dd#dd%dd'dd)dd+dd-dd/dd1dd3dd5dd7dd9dd;dd=dd?ddAi ddCddddddddddddddddddddÓddœddǓddɓdd˓dd͓ddϓddd}dddddddddddܜ| _dddddddddݜ| _i ddkddmddoddqddsdduddwddydd{dd}ddddddddddddddi dddddddddddd	ddddddddddddddddddddddi d d!dd#dd%dd'dd)dd+dd-dd/dd1d	d3d
d5dd7dd9dd;dd=dd?ddAi ddCddddddddddddddddddÓddœddǓddɓdd͓ddϓd dГd!dѓd"d"ddddddddddېd#| _i d$dkd%dmd&dod'dqd(dsd)dud*dwd+dyd,d{d-d}d.dd/dd0dd1dd2dd3dd4di d5dd6dd7dd8dd9dd:d	d;dd<dd=dd>dd?dd@ddAddBddCddDddEdi dFd!dGd#dHd%dId'dJd)dKd+dLd-dMd/dNd1dOd3dPd5dQd7dRd9dSd;dTd=dUd?dVdAi dWdCdXddYddZdd[dd\dd]dd^dd_dd`ddadÓdbdœdcdǓdddɓded˓dfd͓dgdϓi dhdГdidѓdjdѓdkd"dld"dmdғdndӓdodԓdpdՓdqd֓drdדdsdؓdtdٓdudړdvdۓdwdkdxdy| _d7d8d=dLdz| _	i d{dmd|dod}dqd~dsdduddwddydd{dd}ddddddddddddddddi dddddddddd	dddddddddddddddddddddddd!i dd#dd%dd'dd)dd+dd-dd/dd1dd3dd5dd7dd9dd;dd=dd?ddAddCi ddddddddddddddddddddÓddœddǓddɓdd˓dd͓ddϓddГdѐd"d"ddddddddddېd| _
i ddmddoddqddsdduddwddydd{dd}ddddddddddddddddi dddddddd	dddddddddddddddddddddddd!dd#i dd%dd'dd)dd+dd-dd/dd1dd3dd5dd7dd9dd;dd=dd?ddAddCddi ddddddddddddddddÓddœddǓddɓdd͓ddϓd dГddѓdd"dd"ddddddddddېd
| _i ddkddmddoddqd	dsd
duddwddydd{dd}ddddddddddddddi dddd	ddddddddddddddddd dd!dd"dd#d!d$d#d%d%d&d'i d'd+d(d-d)d/d*d1d+d3d,d5d-d7d.d;d/dCd0dd1dd2dd3dd4dd5dd6dd7di d8dd9dÓd:dœd;dɓd<d͓d=dГd>dѓd?d"d@d"dAdғdBdӓdCdԓdDdՓdEd֓dFdדdGdؓdHdٓddېdI| _dd d,dJ| _i dKdmdLdodMdqdNdsdOdudPdwdQdydRd{dSddTddUddVddWddXddYddZd	d[di d\dd]dd^dd_dd`ddad'dbd)dcd+ddd3ded5dfd7dgd9dhd;did=djd?dkdAdldCi dmddnddoddpddqddrddsddtddudœdvdǓdwdɓdxd͓dydϓdzdГd{dѓd|d"d}d"ddddddddddېd~
| _i ddkddmddoddqddsdduddwddydd{dd}ddddddddddddddi dddd	dddddddddddddddddddddddd!dd#dd%dd'i dd+dd-dd/dd1dd3dd5dd7dd;dd=ddAddCddddddddddddi ddddddddÓddǓddɓddϓddГddѓdd"dd"ddғddӓddԓddՓdd֓ddדddddېd| _ddddÜ| _i ddkddmddoddqddsdduddwddydd{dd}ddddddddddddddi dddddddd	dddddddddddddddddddddddd!dd#i dd%dd'dd+dd-dd/dd1dd3dd5dd7dd;dd=ddAddCddddddddi ddddddddddddÓddǓddɓdd˓d dϓddГddѓdd}dd"dd"ddғddӓddddddddېd| _td	| _td
| _td| _td| _td| _td| _td| _td| _td| _td| _td| _td| _td| _ td| _!td| _"td| _#td| _$td| _%td| _&td| _'td| _(td| _)td| _*td | _+td!| _,td"| _-td#| _.d S ($  Nr/   r.   r1   r0   r3   r2   r5   r4   r7   r6   r9   r8   r;   r:   r=   r<   r?   r>   rA   r@   rC   rB   rE   rD   rG   rF   rI   rH   rK   rJ   rM   rL   rO   rN   rQ   rP   rS   rR   rU   rT   rw   r~   rW   rV   rY   rX   r[   rZ   r]   r\   r_   r^   ra   r`   rc   rb   rv   r}   re   rd   ru   r|   rx   r   rg   rf   ri   rh   rl   rj   rn   ry   )rm   rk   ro   rr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  rm   r  rk   r	  ro   r  rr   r
  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   r   rq   r   r   r   r   r   r   r   r   r   r   )r  r  u   ॠr  r  r  r  r  r  r  r   r!  r"  )u   क़u   ख़u   ग़u   ज़u   ड़u   ढ़u   फ़u   य़r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  u   ఍r-  r.  r/  u   ఑r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  u   ఩rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  u   ఴrQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rs   )u   ౤u   ౥rc  rd  re  rf  rg  rh  ri  rj  rk  rl  u   ਁrn  ro  rp  rq  rr  rs  rt  ru  rv  u   ਍rw  rx  ry  r}  rz  r{  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r     ੜu   ੤u   ੥r  r  r  r  r  r  r  r  r  r  rm  r  rt   )u   ਖ਼u   ਗ਼u   ਜ਼u   ਫ਼r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   )r  u   ೤u   ೥r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  u   ൤u   ൥)
rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  u   ৤u   ৥r  r  r  r  r  r  r  r  )r  r  )u   ড়u   ঢ়u   য়u   ஂr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  u   ஶr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  u   ௤u   ௥)
r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  u   ୤u   ୥r  r  r  r  r  r  )r  r  r  r  )u   ଡ଼u   ଢ଼   ୟr  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r)  r'  r(  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rW  rU  rV  rX  u   ૠu   ૤u   ૥rY  rZ  )r[  r\  r]  r^  r_  r`  ra  rb  u	   ([³-Ø])u	   ([¥-²])u	   ([ñ-ú])u   ([³-Ø])èu   ([³-Ø])éu   [¤]([¡-£])u   ([³-Ø])([Ú-ç])u   ([¥-²])([¡-£])u   ([³-Ø])éèu   ([³-Ø])([¡-£])u   ([³-Ø])é([Ú-ç])u   ([³-Ø])é([¡-£])u   ([³-Ø])([Ú-ç])([¡-£])u   ([³-Ø])é([Ú-ç])([¡-£])u   ([ऀ-ॿ])u   ([ఁ-౯])u   ([ಀ-೿])u   ([ഀ-൯])u   ([ঀ-৯])u   ([଀-୿])u   ([ਁ-ੵ])u   ([઀-૿])u   ([ஂ-௯])u   ([क़-य़])u   ([ଡ଼ଢ଼ୟ])u   ([ড়ঢ়য়])u   ([ਖ਼-ਜ਼ਫ਼]))/	hashc_i2w	hashv_i2w	hashm_i2w
hashmd_i2w
digits_i2w	hashh_u2iunicode_norm_hashh_u2i	hasht_u2i	hashp_u2iunicode_norm_hashp_u2i	hashk_u2i	hashm_u2i	hashb_u2iunicode_norm_hashb_u2i
hashta_u2i	hasho_u2iunicode_norm_hasho_u2i	hashg_u2ir%   r&   r8   rf   r  chcnamdcmvmdcnhcmdcnmcnmdcmmdcnmmdu2i_hu2i_tu2i_ku2i_mu2i_bu2i_ou2i_pu2i_gu2i_tau2i_hnu2i_onu2i_bnu2i_pnr-   r   r   r   r*     s  	
 "#$%
+	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE
T
	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDER	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUX
	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDES	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEP	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEI
	
 !"#$%&'()*+,-./01234?	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEK
	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEPzWX.initialize_utf2wx_hashc                 C   sd   | dd}| dd}| dd}| dd}| dd}| dd}| dd	}| d
d	}|S )zPerforms some common normalization, which includes:
        - Byte order mark, word joiner, etc. removal
        - ZERO_WIDTH_NON_JOINER and ZERO_WIDTH_JOINER removal
        u   ﻿ u   ￾u   ⁠r   u   ‌u   ‍u   ।rz   u   ॥)replace)r   textr   r   r   	normalize  s   zWX.normalizec                    <   d|vr|S  j  fdd|} j fdd|}|S )NZeVc                    4    j | d  j d   jd   j| d  S )N   ry   r      rd  grouprf  rg  r^   r-   r   r   <lambda>      zWX.map_ZeV.<locals>.<lambda>c                    $    j | d  j d   jd  S )Nr  ry   r   rd  r  rf  r  r-   r   r   r        )ru  subrt  r   	my_stringr   r-   r   map_ZeV
     

z
WX.map_ZeVc                    r  )Nr   c                    *    j | d  jd   j| d  S Nr  r   r  r  r  r-   r   r   r  !      zWX.map_eV.<locals>.<lambda>c                        j | d  jd  S Nr  r   r  r  r-   r   r   r  (  
    )rr  r  rs  r  r   r-   r   map_eV     

z	WX.map_eVc                    r  )Nr   c                    r  Nr  r   r  r  r  r-   r   r   r  2  r  zWX.map_EY.<locals>.<lambda>c                    r  Nr  r   r  r  r-   r   r   r  9  r  )rv  r  rw  r  r   r-   r   map_EY.  r  z	WX.map_EYc                    r  )NZoVc                    r  )Nr  ry   r   r  r  r  r-   r   r   r  C  r  zWX.map_ZoV.<locals>.<lambda>c                    r  )Nr  ry   r   r  r  r-   r   r   r  K  r  )r|  r  r{  r  r   r-   r   map_ZoV?  r  z
WX.map_ZoVc                    r  )Nr   c                    r  Nr  r   r  r  r  r-   r   r   r  V  r  zWX.map_oV.<locals>.<lambda>c                    r  Nr  r   r  r  r-   r   r   r  ]  r  )ry  r  rz  r  r   r-   r   map_oVR  r  z	WX.map_oVc                    sZ   d|vr|S d|v r j  fdd|} j fdd|} j fdd|}|S )Nr   ry   c                    r  )Nr  ry   r   r  r  r-   r   r   r  h  r  zWX.map_OY.<locals>.<lambda>c                    r  Nr  r   r  r  r  r-   r   r   r  n  r  c                    r  Nr  r   r  r  r-   r   r   r  u  r  )r~  r  rx  r}  r  r   r-   r   map_OYc  s    


z	WX.map_OYc                    s   d|vr|S  j  fdd|} j fdd|} j fdd|} j fdd|} j fdd|} j fdd|} j fd	d|}|S )
Nry   c                    :    j | d  j d   j| d   j| d  S )Nr  ry   r     r  r  r-   r   r   r        zWX.map_Z.<locals>.<lambda>c                    *    j | d  j d   j| d  S Nr  ry   r  r  r  r-   r   r   r    r  c                    r  r  rd  r  rg  r  r-   r   r   r    r  c                    r  r  r  r  r-   r   r   r    r  c                        j | d  j d  S )Nr  ry   rd  r  r  r-   r   r   r    r  c                    s    j | dd   j d  S )Nr  r{   ry   r  r  r-   r   r   r    s    c                    s$    j | d  j d   j d  S )Nr  ry   rp   r  r  r-   r   r   r    r  )r  r  r  r  r  r  r  r  r  r   r-   r   map_Z{  s>   
	





zWX.map_Zc                    sh   d|vr|S  j  fdd|} j fdd|} j fdd|} j fdd|}|S )Nr   c                    r  )Nr  r   r  r  r  r-   r   r   r    r  zWX.map_q.<locals>.<lambda>c                        j d  j| d  S )Nr   r  re  rg  r  r  r-   r   r   r    
    c                    r  )Nr  r   r  r  r-   r   r   r    r  c                    r  )Nr   r  r  r  r-   r   r   r    r  )r  r  r  r  r  r  r   r-   r   map_q  s&   



zWX.map_qc                    .  d|vr|S t d fdd|}t d fdd|}t d fdd|}t d	 fd
d|}t d fdd|}t d fdd|}t d fdd|}t d fdd|}t d fdd|}t d fdd|}t d fdd|}t d fdd|}t d fdd|}|S )Nr   z(lYY)eV([MHz])c                    r  r  r  r  r-   r   r   r    r  zWX.map_lYY.<locals>.<lambda>z(lYY)eVc                    r  r  r  r  r-   r   r   r    
    z(lYY)EY([MHz])c                    r  r  r  r  r-   r   r   r    r  z(lYY)EYc                    r  r  r  r  r-   r   r   r    r  z(lYY)oV([MHz])c                    r  r  r  r  r-   r   r   r    r  z(lYY)oVc                    r  r  r  r  r-   r   r   r    r  z(lYY)OY([MHz])c                    r  r  r  r  r-   r   r   r    r  z(lYY)OYc                    r  r  r  r  r-   r   r   r    r  z(lYY)([AiIuUeEoO])([MHz])c                    0    j | d  j| d   j| d  S Nr  r  r  r  r  r-   r   r   r        z(lYY)([AiIuUeEoO])c                         j | d  j| d  S Nr  r  r  r  r-   r   r   r        z(lYY)a([MHz])c                    r  r  r  r  r-   r   r   r    r  z(lYY)ac                        j | d S Nr  r  r  r-   r   r   r        z(lYY)c                    r  Nr  rp   r  r  r-   r   r   r    r  r%   r  r  r   r-   r   map_lYY  s|   




	

z
WX.map_lYYc                    r  )Nr|   z(lY)eV([MHz])c                    r  r  r  r  r-   r   r   r    r  zWX.map_lY.<locals>.<lambda>z(lY)eVc                    r  r  r  r  r-   r   r   r  %  r  z(lY)EY([MHz])c                    r  r  r  r  r-   r   r   r  +  r  z(lY)EYc                    r  r  r  r  r-   r   r   r  3  r  z(lY)oV([MHz])c                    r  r  r  r  r-   r   r   r  9  r  z(lY)oVc                    r  r  r  r  r-   r   r   r  A  r  z(lY)OY([MHz])c                    r  r  r  r  r-   r   r   r  G  r  z(lY)OYc                    r  r  r  r  r-   r   r   r  O  r  z(lY)([AiIuUeEoO])([MHz])c                    r  r  r  r  r-   r   r   r  U  r  z(lY)([AiIuUeEoO])c                    r  r  r  r  r-   r   r   r  ^  r  z(lY)a([MHz])c                    r  r  r  r  r-   r   r   r  e  r  z(lY)ac                    r  r  r  r  r-   r   r   r  k  r  z(lY)c                    r  r  r  r  r-   r   r   r  o  r  r  r  r   r-   r   map_lY     








	


z	WX.map_lYc                    r  )Nr~   z(nY)eV([MHz])c                    r  r  r  r  r-   r   r   r  z  r  zWX.map_nY.<locals>.<lambda>z(nY)eVc                    r  r  r  r  r-   r   r   r    r  z(nY)EY([MHz])c                    r  r  r  r  r-   r   r   r    r  z(nY)EYc                    r  r  r  r  r-   r   r   r    r  z(nY)oV([MHz])c                    r  r  r  r  r-   r   r   r    r  z(nY)oVc                    r  r  r  r  r-   r   r   r    r  z(nY)OY([MHz])c                    r  r  r  r  r-   r   r   r    r  z(nY)OYc                    r  r  r  r  r-   r   r   r    r  z(nY)([AiIuUeEoO])([MHz])c                    r  r  r  r  r-   r   r   r    r  z(nY)([AiIuUeEoO])c                    r  r  r  r  r-   r   r   r    r  z(nY)a([MHz])c                    r  r  r  r  r-   r   r   r    r  z(nY)ac                    r  r  r  r  r-   r   r   r    r  z(nY)c                    r  r  r  r  r-   r   r   r    r  r  r  r   r-   r   map_nYu  r  z	WX.map_nYc                    r  )Nr}   z(rY)eV([MHz])c                    r  r  r  r  r-   r   r   r    r  zWX.map_rY.<locals>.<lambda>z(rY)eVc                    r  r  r  r  r-   r   r   r    r  z(rY)EY([MHz])c                    r  r  r  r  r-   r   r   r    r  z(rY)EYc                    r  r  r  r  r-   r   r   r    r  z(rY)oV([MHz])c                    r  r  r  r  r-   r   r   r    r  z(rY)oVc                    r  r  r  r  r-   r   r   r    r  z(rY)OY([MHz])c                    r  r  r  r  r-   r   r   r  	  r  z(rY)OYc                    r  r  r  r  r-   r   r   r  		  r  z(rY)([AiIuUeEoO])([MHz])c                    r  r  r  r  r-   r   r   r  	  r  z(rY)([AiIuUeEoO])c                    r  r  r  r  r-   r   r   r  	  r  z(rY)a([MHz])c                    r  r  r  r  r-   r   r   r  	  r  z(rY)ac                    r  r  r  r  r-   r   r   r  %	  r  z(rY)c                    r  r  r  r  r-   r   r   r  )	  r  r  r  r   r-   r   map_rY  r  z	WX.map_rYc                    `   d|vr|S t d fdd|}|d jd }t d fdd|}|d jd }|S )Nr   z
aeV([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  4	  r  zWX.map_eV2.<locals>.<lambda>r   z	eV([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  ;	  r  r%   r  r  re  r  r   r-   r   map_eV2/	     

z
WX.map_eV2c                    r  )Nr   z
aEY([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  G	  r  zWX.map_EY2.<locals>.<lambda>r   z	EY([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  N	  r  r  r  r   r-   r   map_EY2B	  r  z
WX.map_EY2c                    r  )Nr   z
aoV([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  Z	  r  zWX.map_oV2.<locals>.<lambda>r   z	oV([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  a	  r  r  r  r   r-   r   map_oV2U	  r  z
WX.map_oV2c                    r  )Nr   z
aOY([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  m	  r  zWX.map_OY2.<locals>.<lambda>r   z	OY([MHz])c                    r  )Nr   r  r  r  r-   r   r   r  t	  r  r  r  r   r-   r   map_OY2h	  r  z
WX.map_OY2c                 C   s   d|vr|S t d| jd |}t d| jd |}t d| jd |}t d| jd	 |}t d
| jd |}t d| jd |}t d| jd |}t d| jd |}t d| jd |}|S )Nr   z\BaAr   z\Bair   z\BaIr   z\Baur   z\BaUr   z\Baer   z\BaEr   z\Baor   z\BaOr   )r%   r  re  r  r   r   r   map_a{	  s   zWX.map_ac                    s   j dkr|d jd d } |} |} |} |} |} |} 	|} 
|} |} |} |} |} j fdd|} j fdd|} j fdd|} j fd	d|}|d
 jd
 }|d jd
 } j fdd|} |} |} |} |} |}td fdd|}td fdd|}|d jd }|dd} j fdd|}|S )zConvert WX to ISCIIpanr   r   r{   c                    r  r  r  r  r-   r   r   r  	  r  zWX.wx2iscii.<locals>.<lambda>c                    r  r  r  r  r-   r   r   r  	  r  c                    r  r  r  r  r-   r   r   r  	  r  c                    r  r  r  r  r-   r   r   r  	  r  r   r   c                    r  r  r  r  r-   r   r   r  	  r  z([aAiIuUeEoO])([MHz])c                    r  r  )re  r  rg  r  r-   r   r   r  	  r  z([aAiIuUeEoO])c                    r  r  )re  r  r  r-   r   r   r  	  r  rz   rt   c                    r  r  )rh  r  r  r-   r   r   r  	  r  )r
   r  re  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r8   r  r	  r
  r  r  r%   rd  r  r  r   r-   r   wx2iscii	  st   

























zWX.wx2isciic                 C      | j dv r| |}|S | j dkr| |}|S | j dv r$| |}|S | j dkr0| |}|S | j dkr<| |}|S | j dkrH| |}|S | j dkrT| |}|S | j dkr`| |}|S | j d	krl| 	|}|S t
d
| j  )zConvert ISCII to Unicoder   marnepbodkoktelbenasmkanr  maltamoriguj!Language `%s` is not implemented.)r
   iscii2unicode_hiniscii2unicode_teliscii2unicode_beniscii2unicode_kaniscii2unicode_paniscii2unicode_maliscii2unicode_tamiscii2unicode_oriiscii2unicode_gujNotImplementedErrorr   isciiunicode_r   r   r   iscii2unicode	  @   













	



zWX.iscii2unicodec                        j  fdd|}|S )Nc                        j | ddS Nr  r  )ri  getr  r  r-   r   r   r  	      
z&WX.iscii2unicode_hin.<locals>.<lambda>r  r  r)  r   r-   r   r  	  
   
zWX.iscii2unicode_hinc                    r.  )Nc                    r/  r0  )rj  r1  r  r  r-   r   r   r  	  r2  z&WX.iscii2unicode_tel.<locals>.<lambda>r3  r)  r   r-   r   r   	  r4  zWX.iscii2unicode_telc                    r.  )Nc                    r/  r0  )rk  r1  r  r  r-   r   r   r  	  r2  z&WX.iscii2unicode_pan.<locals>.<lambda>r3  r)  r   r-   r   r#  	  r4  zWX.iscii2unicode_panc                    &    j  fdd|}|dd}|S )Nc                    r/  r0  )rl  r1  r  r  r-   r   r   r  
  r2  z&WX.iscii2unicode_kan.<locals>.<lambda>   ಫ಼   ೞr  r  r  r)  r   r-   r   r"  
     
zWX.iscii2unicode_kanc                    r.  )Nc                    r/  r0  )rm  r1  r  r  r-   r   r   r  
  r2  z&WX.iscii2unicode_mal.<locals>.<lambda>r3  r)  r   r-   r   r$  

  r4  zWX.iscii2unicode_malc                    r.  )Nc                    r/  r0  )rn  r1  r  r  r-   r   r   r  
  r2  z&WX.iscii2unicode_ben.<locals>.<lambda>r3  r)  r   r-   r   r!  
  r4  zWX.iscii2unicode_benc                    r.  )Nc                    r/  r0  )ro  r1  r  r  r-   r   r   r  
  r2  z&WX.iscii2unicode_tam.<locals>.<lambda>r3  r)  r   r-   r   r%  
  r4  zWX.iscii2unicode_tamc                    r5  )Nc                    r/  r0  )rp  r1  r  r  r-   r   r   r  
  r2  z&WX.iscii2unicode_ori.<locals>.<lambda>u   ଯ଼r  r8  r)  r   r-   r   r&  
  r9  zWX.iscii2unicode_oric                    r.  )Nc                    r/  r0  )rq  r1  r  r  r-   r   r   r  %
  r2  z&WX.iscii2unicode_guj.<locals>.<lambda>r3  r)  r   r-   r   r'  #
  r4  zWX.iscii2unicode_gujc                 C   r  )zConvert Unicode to ISCIIr  r  r  r  r  r  r  r  r  r  )r
   unicode2iscii_hinunicode2iscii_telunicode2iscii_benunicode2iscii_kanunicode2iscii_panunicode2iscii_malunicode2iscii_tamunicode2iscii_oriunicode2iscii_gujr(  )r   r+  r*  r   r   r   unicode2iscii)
  r-  zWX.unicode2isciic                    s\   j  fdd|} j fdd|} j fdd|} j fdd|} j fdd|} j fdd|} j fdd|} j fd	d|} j	 fd
d|} j
 fdd|} j fdd|} j fdd|} j fdd|}|dd}|dd}|dd} j fdd|}|S )zConvert ISCII to WXc                    r  r  r  r  r  r-   r   r   r  G
  r  zWX.iscii2wx.<locals>.<lambda>c                    r  )Nr  rr   r  r  r  r  r  r  r  r-   r   r   r  K
  r  c                    r  Nr  rr   r  r  r  r  r  r-   r   r   r  U
  r  c                    r  rF  r  r  r  r  r-   r   r   r  ]
  r  c                    r  )Nr  rr   rD  r  r-   r   r   r  e
  r  c                    s    j | d  j d  d S )Nr  rr   r   rD  r  r-   r   r   r  k
  s    c                    r  r  rE  r  r-   r   r   r  r
  r  c                    r  r  rG  r  r-   r   r   r  {
  r  c                    s$    j | d d  j| d  S )Nr  r   r  rH  r  r-   r   r   r  
  s    c                    s    j | d d S )Nr  r   rD  r  r-   r   r   r  
  s
    c                    r  r  )r  r  r  r  r-   r   r   r  
  r  c                    s   d j | d  S )Nr   r  )r  r  r  r-   r   r   r  
  s
    c                    r  r  )r  r  r  r-   r   r   r  
      r   r   rs   rz   rt   r{   c                    r  r  )r  r  r  r-   r   r   r  
  r  )r  r  r  r  r  r  r  r  r  r  r8   r  r  rf   r  r  r  r   r-   r   iscii2wxC
  sr   







	





zWX.iscii2wxc                    s0    j  fdd|} j fdd|}|S )Nc                        j | ddd S )Nr  r  r  )r  r1  r  r  r-   r   r   r  
  
    
z&WX.unicode2iscii_hin.<locals>.<lambda>c                    r/  r0  )r  r1  r  r  r-   r   r   r  
  r2  )r  r  r  )r   r+  	iscii_hinr   r-   r   r:  
  s   

zWX.unicode2iscii_hinc                    s&   | dd} j fdd|}|S )Nu   ైr^  c                    r/  r0  )r  r1  r  r  r-   r   r   r  
  r2  z&WX.unicode2iscii_tel.<locals>.<lambda>)r  r  r  )r   r+  	iscii_telr   r-   r   r;  
  s   
zWX.unicode2iscii_telc                    s<    j  fdd|}|dd} j fdd|}|S )Nc                    rK  )Nr  r  r  )r  r1  r  r  r-   r   r   r  
  rL  z&WX.unicode2iscii_pan.<locals>.<lambda>r  u   ¿éc                    r/  r0  )r  r1  r  r  r-   r   r   r  
  r2  )r  r  r  r  )r   r+  	iscii_panr   r-   r   r>  
  s   

zWX.unicode2iscii_panc                    sb   | dd}| dd}| dd}| dd}| d	d
}| dd} j fdd|}|S )Nr7  r6  u   ೀr  u   ೇr  u   ೈr  u   ೊr  u   ೋr  c                    r/  r0  )r  r1  r  r  r-   r   r   r  
  r2  z&WX.unicode2iscii_kan.<locals>.<lambda>)r  r  r  )r   r+  	iscii_kanr   r-   r   r=  
  s   
zWX.unicode2iscii_kanc                    s>   | dd}| dd}| dd} j fdd|}|S )	Nu   ൊrJ  u   ോrK  u   ൌu   ൗc                    r/  r0  )r  r1  r  r  r-   r   r   r  
  r2  z&WX.unicode2iscii_mal.<locals>.<lambda>)r  r  r  )r   r+  	iscii_malr   r-   r   r?  
  s   
zWX.unicode2iscii_malc                    H    j  fdd|}|dd}|dd} j fdd|}|S )Nc                    rK  )Nr  r  r  )r  r1  r  r  r-   r   r   r  
  rL  z&WX.unicode2iscii_ben.<locals>.<lambda>u   োr  u   েௗr  c                    r/  r0  )r  r1  r  r  r-   r   r   r  
  r2  )r  r  r  r  )r   r+  	iscii_benr   r-   r   r<  
     

zWX.unicode2iscii_benc                    sJ   | dd}| dd}| dd}| dd} j fd	d
|}|S )Nu   ஔr  u   ொr  u   ோr  u   ௌr  c                    r/  r0  )r  r1  r  r  r-   r   r   r  
  r2  z&WX.unicode2iscii_tam.<locals>.<lambda>)r  r  r  )r   r+  	iscii_tamr   r-   r   r@  
  s   
zWX.unicode2iscii_tamc                    rR  )Nc                    rK  )Nr  r  r  )r  r1  r  r  r-   r   r   r  
  rL  z&WX.unicode2iscii_ori.<locals>.<lambda>u   ୋr  u   ୌr  c                    r/  r0  )r  r1  r  r  r-   r   r   r    r2  )r  r  r  r  )r   r+  	iscii_orir   r-   r   rA  
  rT  zWX.unicode2iscii_oric                    r.  )Nc                    r/  r0  )r  r1  r  r  r-   r   r   r    r2  z&WX.unicode2iscii_guj.<locals>.<lambda>)r  r  )r   r+  	iscii_gujr   r-   r   rB    s
   
zWX.unicode2iscii_gujc                    s\     |} j fdd|} |} |}tdd|} j fdd|}|S )zConvert UTF string to WX-Romanc                    r  r  r#   r  r  r-   r   r   r    r  zWX.utf2wx.<locals>.<lambda>u   [ -ú]+r  c                    r  r  r$   r  r  r-   r   r   r    rI  )r  r'   r  rC  rJ  r%   r)   )r   r+  r*  wxr   r-   r   r     s   



z	WX.utf2wxc                    sD    j  fdd|} |} |} j fdd|}|S )zConvert WX-Roman to UTFc                    r  r  rX  r  r-   r   r   r  $  r  zWX.wx2utf.<locals>.<lambda>c                    r  r  rY  r  r-   r   r   r  +  r  )r'   r  r  r,  r)   )r   rZ  r*  r+  r   r-   r   r      s   



z	WX.wx2utfN)r   r   )2__name__
__module____qualname____doc__r   r   r+   r*   r  r  r  r  r  r  r  r  r  r   r  r  r  r  r	  r
  r  r  r  r,  r  r   r#  r"  r$  r!  r%  r&  r'  rC  rJ  r:  r;  r>  r=  r?  r<  r@  rA  rB  r   r   r   r   r   r   r      sx    
)      \      Y4N]]]Nb	r   )
__future__r   r%   sixr   r   r   r   r   r   <module>   s   