From a58ad756ffdfb550c12fdc29904655a034b8e87a Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 26 Jan 2022 10:09:02 +0900 Subject: [PATCH] devanagari narrower vowels --- assets/devanagari_variable.tga | 2 +- .../torvald/terrarumsansbitmap/GlyphProps.kt | 2 +- .../gdx/TerrarumSansBitmap.kt | 16 ++++++++-------- testing.PNG | Bin 28946 -> 29490 bytes testtext.txt | 3 ++- work_files/devanagari_variable.psd | 4 ++-- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/assets/devanagari_variable.tga b/assets/devanagari_variable.tga index 0848824..a7aca0c 100644 --- a/assets/devanagari_variable.tga +++ b/assets/devanagari_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92b51072de10895c2bcf2e9b14b226b308b690b8f4e7ba1d29e303f8d3eeac1e +oid sha256:b8202e14617760d02855ce3ec9a4702206e994508dfc9f4df83409099841124d size 491538 diff --git a/src/net/torvald/terrarumsansbitmap/GlyphProps.kt b/src/net/torvald/terrarumsansbitmap/GlyphProps.kt index cc91246..6652697 100755 --- a/src/net/torvald/terrarumsansbitmap/GlyphProps.kt +++ b/src/net/torvald/terrarumsansbitmap/GlyphProps.kt @@ -116,7 +116,7 @@ data class GlyphProps( if (stackWhere == STACK_BEFORE_N_AFTER) 2 else if (directiveOpcode in 0b10000_000..0b10000_111) - directiveOpcode and 7 + 7 else 0 fun isPragma(pragma: String) = when (pragma) { diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt index 5609985..1c5f310 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt @@ -1213,11 +1213,11 @@ class TerrarumSansBitmap( seq.add(c) changeRaStatus(1) } - else if ((yankedDevanagariRaStatus[1] == 1 || yankedDevanagariRaStatus[1] == 3) && devanagariVerbs.contains(c)) { + else if ((yankedDevanagariRaStatus[1] == 1 || yankedDevanagariRaStatus[1] == 3) && devanagariVowels.contains(c)) { seq.add(c) changeRaStatus(3) } -// else if (yankedDevanagariRaStatus == 3 && !devanagariVerbs.contains(c)) { +// else if (yankedDevanagariRaStatus == 3 && !devanagariVowels.contains(c)) { else if (yankedDevanagariRaStatus[1] > 0 && yankedCharacters.peek().second == DEVANAGARI_RA) { // termination or illegal state for Devanagari RA yankedCharacters.pop() seq.add(DEVANAGARI_RA_SUPER) @@ -1289,9 +1289,9 @@ class TerrarumSansBitmap( i = 0 while (i <= seq.lastIndex) { if (i > 0 && (glyphProps[seq[i]] ?: nullProp).alignWhere == GlyphProps.ALIGN_BEFORE) { - val verb = seq[i] -// dbgprn("Verb realign: index $i, ${verb.charInfo()}") - if (isDevanagari(verb)) { + val vowel = seq[i] +// dbgprn("Vowel realign: index $i, ${vowel.charInfo()}") + if (isDevanagari(vowel)) { // scan for the consonant cluster backwards // [not ligature glyphs] h h h h h c l r var scanCounter = 1 @@ -1303,10 +1303,10 @@ class TerrarumSansBitmap( scanCounter += 1 else break - } // scanCounter points at the terminator. the left-verb must be placed at (i - scanCounter + 1) + } // scanCounter points at the terminator. the left-vowel must be placed at (i - scanCounter + 1) seq.removeAt(i) - seq.add(i - scanCounter + 1, verb) + seq.add(i - scanCounter + 1, vowel) } else { val t = seq[i - 1] @@ -1781,7 +1781,7 @@ class TerrarumSansBitmap( private val TAMIL_SHRII = 0xF00EE private val devanagariConsonants = ((0x0915..0x0939) + (0x0958..0x095F) + (0x0978..0x097F) + (0xF0105..0xF01FF)).toHashSet() - private val devanagariVerbs = ((0x093A..0x093C) + (0x093E..0x094C) + (0x094E..0x094F)).toHashSet() + private val devanagariVowels = ((0x093A..0x093C) + (0x093E..0x094C) + (0x094E..0x094F)).toHashSet() private val devanagariBaseConsonants = 0x0915..0x0939 private val devanagariBaseConsonantsWithNukta = 0x0958..0x095F diff --git a/testing.PNG b/testing.PNG index 5c23335fcc58a402d9f821bfacd7d85d63057882..ceedcf49381012cde1a1373c35ed41383a09726d 100755 GIT binary patch literal 29490 zcmeIbd03L^|3CVal~dC;H7(}WGOebSrlq*lRNAzeS(1B=xgt>-kPu=y?WH-nWTrTg zsUc7zkRsAD6AdWj0t6(~7^$qe00|<$r}=!(@0{;-u5(?#^Upbd{QAR3F0T8z@8^C$ z_kF)#@7L@7)~g2(gw2|KYaF{ zws(71-_}yEw~JdVTbKN`bT#{ST$zS=ZnG4+OF#qYTy*Cf~X<>+lNd z+{n@q3*w zQwOnAZ}izK-;WYhxJABve^#01XF1BfJ6(>bqw<3g0Pwl_VQLT0@%ZRY=5;+}onen$ zV2aH_9GN9$uEuLe&(`?RUmM=YWQl61G21!?Sy>4`0UVw|?Zx-gRaR!G>0EcvnQrFHY z_1W*k`9X}GVsD57mQ1bBBJ3WJ4arm4-n`(gKqz~*@vuyq||3A4*OlV6-3|9H2>Nws#47Bh^mC77yuw|{NaTd#9*SohlvV* zxMP1a4kljX{c>UDMG_MtMR zf&+Y+%=Y|o@-yMQ*%_+pkBgVKUU;do zr!M;y$?-|{M>?T<%m-4rvSC4Ah}u)L*0E9PWu;33LJS#u4~zXma1_nK?|^e0aD%Jf zC#~Aqpod~+9p>p0?MB|)2qmP$1;&RI*ymfvW;;>YiL_023bTz-b&`K$y-hMQ+AKJu z1)i~AY}aL;LjQK9(n@b);Mq|drpt~fA-f9bD_;%?FYypXe;9-^)cBa_6`G!OgaK0z zX4`)GumpI!!lkF+dGBfW(3kj9H%3C@TWW1HE@DD&X^AmkZ77W`JL0z2a5UDKxHX(* zt9ON1AE8pEw@(_ZC5{8dl0$x5oDajGYDzA#T{%&;y0?knJ zu*Bgo-HlS#A=C+ZLXe87QnCGM#zg;cxbGz`q5bfo zkuQl=8F_VO$oP6YFK3_;};6CoHhq+z{Rah9BMW5CX`txg#}5UvcJs2O#&KNKlVhqIrYkF6Wl&^ zim@GTc-#9+%4yFlG$_260@=YKD#E94_Q7?t++yUD0OjED4H=)8KTWMdabd*OTN7*y zyVe$;-)>nPL*=|22o%|HztN+jS(bH}0xYhDsNJ`ma6M-1acM@BSL-;Of!8?xIjXMo zcZ9Zmk&gYu7im_>E)#{varzbVlHj5GD&Scne0oMr`T0}LaM-r!OBb`2ZiUSCH>FR# zt$23!;dnwN)$R`WGY= zE9u<_feK-U^J_b^A7l1c28}0))JR&_<<$PvCcGxME213qQBQyDiJ6qPxw_twLVPaV zl-ANENN^&q?jz4W%WG6mIsrpH$h{KQ`>G~%vuwV9c+rGH3hfNwKOa$h3#7@Z5J4C& zll|PR?Y~b)_&XeS&mPV8vmWlSeAq%(2Czo%uH!43<1i{^WrRCr9NWyg`JXWWUjuo4J@%h-qw1iEKx=cIqnTu$D;Px>5-6hN zE9k^XbV#&m;|v%ZwaerPyGpnNLh^y<&PP0ofTRwNs38*@#hm^ zrYlt5%;(w8Lfb~Km=K7CnRJCXmw@4jM2}ZCOadae!#|~CJ8e;IIQJ6w%C*;L=B5HS*zmPm1i|7Du>LyFwLn`1B7nfjr1}8P5urR!;&5ABp)fwo|tV zo99~p=FSeeDhvR|_qjXwsJVG%;VcNYJ?GMPfr$HCSYf64ta{Vu@GlRO#&(j0Ew$Ug zGx&4ScCzuyP~Tu0BzLd+WLQPiwD`^>4zc&oIDd}xT=$c6jl(p39Pn>T-5bpE82?*i zl0-a}$v?)ehMmz$3&vKDJscU@&mF$1c3)t&W&oeF&z(3(a@?T8st|K3;bqTx)gBma zt8&Y%N1VZR{vLXOr@to;rAa_RJV_y3MFQo7D6 zqcCyNijqFufXm6-t!#WiVpwdf`2a(9Py6;R_t445GREqHk-yslSy0sW5uYHd;jVS& zr1!Mn@?}zX0(H_$sg=9_AgrRZjjf9^SM+)fTQcQp^L==rsZts&W0d7Qh68s$x?Fw(&Gz#S3>hT6$n+pahnlc)j@I|Bfk zzmBx!376TzhV!Hs6kB9O1V;1kSo))Sk@Zq5GP7vnXnGR0t-LQLXpTz54!+uhN3u#x z1*YE4SLJ3kM`CLpd3#^33kdg-h~n)h+jFZhhWNqTnDR6#Ar`;EA>$0EQ9!eS0A&-d zFb0;RK!^^#M3<+>p85Mtyg9$PFvw1hk!@z}tfwn0`F$8%Bh8L(vg=n~AoV{s=3Oaa zq}bN$TN#8$KC-fK8|z6Ho{W_M?^*k%(rew&oPe~O3^HB! zskNTCH3iV4$A-o|@;_z$awzD#^j^ZI$nYjO@p+VO7M5)rnh-tjjDB5yM9_1u*Bq$~ z>4v;2#XO|kyIIGK*Vz>}BAsL@lV4_Ry^@gc(f`=@IxTA=mO$!K_os8gsnUb6?1XyI zZpgD4p5#Ci0q31WoW%*Fm=%kbf~V!(85zl2>l3eQ-J^%;E$g)za*S@k^YSCPzt7f3 zI}|0Vt7K~>c*srT_#oL6iRQmuZHXLH&yDRLm$YWhM*r6Ih=bpdSP@iO>PmP?lAwA^ z6<_BlZOin03Getq_F}~kTBC4!s6(F6Z$S_0UF`g5zntWh<4wKo`z^#t|A?Y5h_STe zCw$M4wUXF9XW#bP$+$vPd*F=|E8p#+-c0CCMV98PMci89xrNlYS`VwXg%PV_P%24C z!DzBaoVj#SSm{v$y*{|0(^RzJdvH>B5-eL|PL3WZVsuO^7A@V}EsmPX8;hbm>v3$Im4VAd|eyWFQdQmQN9zB~bIK*xr zE=&wL)CObN9!bl$0!yi$+jZ*9T_@g%T2`y~$koSa**QI#c&)5WgfD7bv3Gi`b!S;X zsEMGnrx8Tw$#jDVHps(gOK6uDX&-yOJ=QR6lSt8hBu;MR+k-W(duF8pV+&t zDGhFX2t_CAbBU*-*N1y);1}&8r?$-g?}68Soi&BV#y=!W@1u7F3x|#(g8ybwBw|h? z7dv5_44|-^>qPuZRbL{~UrpH@{5Qm4A2uukJ{NP{S9Qhs9p*S*#%vsiOI|bGmF3}q zD0}WCAUsDN=}uVOQ_NX?Vy-bqjV;3P1;HYHpY?%;jnooGd-&n$tHGeO%`!CJ=~!|r z-2WE7pJ*~zJ-HoT81 zn{(tl;Pdo0Kk)e;DWnTORbJGH+|7cIfd&Lebqu@h2#64W0zP%z&5-#z0XQIvav7P&HPJuf|9A;7Ch_~-@ z&!VUa4E*Kb54qdG`1fMIY?H$q%uJ-g*ojSzQU}QVV?UJ-w-GSPw46@AF!dS(JRoJ? zgwf2&+#<(&P|Ik(soXd725*ZR3vQuRTd_75IQD@ejRg%!OqJ{$#rQ)W?haZ3l|8W_ z{uJq=?E4*nJ3oLi$Bmy2v3l_qeyX7|x*m2|xF=R^&E+B95LLV6F71*O$Xe@3;;o7+aRjW^1K zL{wNvBKoL*85$=beAzb{Xyu!##Y^6b_fmL>7s3R&^wR3UBZ%lQ6T*l#|J`0~m&?dpg>hwu0 zY0DnfvDSCF$mpYI-s5T%B>^c8nL*bhgs3LjnO5kW0*CNqZA;5fkI~^>f1K8hr?0A+ zu@m1+;pH}aJ8#93MdyD#d|-40`S!`Zk%n0-$ilHlQdo25%O^Ne`)lJ=;PY=_6i7zA z+G{-acuU$NhcMXtsM%Un(~#P>hlnsxdsv6K`|>>bh^gll+85I98CU~dt((er@{#O- z$t~M|Eb=bMeHw5IQPM4ccoMeOGL}(q{m8>%jW8lk5Zq5op{kDMtGH7o^jG3hyx2g@acLVa!(Jf)*TwUf;C#MsFnU7OaYp+>z9?ILgO4Ha-^_5ICBN6td zRr6sUNylb2NWBI6)QaY5BxN9kJo2`7L7G4xtr3NEZ-9h2vKyBZIHdDW?>)cqZqbtZ zz6@}eL}iY-(pRS@q!=QW;I4DBFTo!wNXQ$E3ig}~Nlpyh(3>2;Hi=GECsRAK^euA` z^m|eqwFjI0uuX4}S`!VKD}ZMWx{$M#9js|bre(XteJ>2K$QyS9?{DL92lLT`L4t&| zr(w44srus%Kyb9II^~peEj6n}v)#W5sRyIZ)DN5q4QE1$rhg9{+r_IEw@7{(&VTMy zJg4wV6B1<=PY`5Knzx%|U_3bkwl@1|h_z@aA~qbn7vKH}#N9u|AB5Qs$cH?~RA()y1Cp^Upb6Ur%Z=`;U+cNiwOIbe|i0a!Z7ApvB&eGWsdcxq~hw2;@h;ENnyC zUyCGRcz3qKN7k0R;ZW`+zhbK(lS3j z;q=wASBk)RdH>BlHAe+TQdpv;cIHb16< z$go!3ipcRmmhjoRq|!a~7jIq7&Fze3G2$1$H$Im7g~{jYlxa4!iR)?$$i~r2xf9}} z1x}~e6LFTSw^$+JA?eXxz~|nspnWHf!1DYt&vqaPqOkMSX@AAT(>xPN{JSULU-F~g zt8g`j{d*MmM&P3rkv<2C`WE9TJZpzqb(=7HYY~vwb@(7G$dlrG<&pcsHyB(fwRPCm zXA~c5D2l4C;|vngcdQLKc%y0AqjTPhui)2d7SNe{{a!^0Y?UmPJ&_g^bc(@2PrWM= zwx@mawv_8in30C(D^rbb)_b@Dby9=S7kIWBgq^CTbuMZ2X%WUPGGnH2AKS?M=wY6H zvp8Q8s*;tW!r2H18`dn%H4t zWf4Lb249o^EFONP^vJ|(LmENR-W3U_@NdNVbXr!}o?sLh$xCgPw1wO$+$VK3!a5ly zhX40xk_keuRQSc`omo9m&kCj-qNRhIBeo?B-t>Utwpf4k0CM4)7>8%&-mwPyG%WET zE$bc)ex=w~zKCY+X!6ILOreyg**g1TaG!sHT|y#PrJ8(voHvFMq-o`;KK!EOyJWma zOn7+%bFF6a)GnF@Wa0lhb5PTpeK>a3tW->LLOp5A8?9?!JlD7TQbct4Mf&cFR9iv%N^3R{w9w$SEna-$K zPc%2HP1F|;?qJh0O>AnF2AR{(>BvG%YE5UaN7&%T}wzP5i4RnIJB z%DSP|oo_m^fvs7aY2vT z`a5qmvvSr#sQG$vH^y5*u>>D!B2aj5%2W>f)!dJ%Y08r!Hd!uHY@7z1x_k=UEPJeX zBK*IfOtMz4<=69{65GO&;&A0ZTP0-fN4&GdWTjJ>Xy$a_%YiaCVaWU`QDzSjCl+a{ zh=i!Ehkb0LgSoP1+}Pg|6U26Rzf~x77(f8;4}7Rb`EB%PC8i@erDBuOkgIDjMDDVr z|CHt4LxJ;jQDw!r?8QM(8A?(@mPG&t^U4h%wR`>-+XK#v{~NXY$FE_{757ZtYc}81 zpO(}2H^-m&3>i>{R9Z_ecLbiEP^0MTOuFqw>Z!dDbZJmzYP|VLN1dm~ANW)8<24Pp zvrjjBf*gup5OHC%y;h;mhY`LPzVe%Ed^P@Pd?ab!ORgYHfHytN!&LXiQ-$nq?tEG znTNkDMw>^D6bTR6CKk}<;HAjXiYCX$I9LtSKbL{oND(>G955J-x>Vl>3(3-oX-cYzgUD zY8%a@ozY9YeD_^+KV<_v6b$|GT;wERE^=)hee#<%yGyJ)f0q1kj?zSfz8a`M3Du9R zb4WpKa}Hvpg%qZIzMnGfZPD`q{Ulh9uBmjQQYT;XS%O>0UKQq3lNufvmyR_YT~4Th zPz-&-aB+@tZ$(6`q16ijQsQQ0{42O6)I~?f_^%^+rJA=r4i>zQ{DGLfixJNb8Ju4V zsp^QkLAfc;83_92)M0^CIBQe}o%1m@^-wGvM0fa7{nIw0j-~OTcYl4~&u;Mdx`%z$ z=QM2vtdwJFjOO4|?9!(rTT?7K++&-(BM)uZ;bHY@?07VA<3N**q*EJ5qOBALTXd;U zNECKeZtrivp>rRmluj>nOUpKchS->74a$JN^Q|8Abj=hsCz-tRJ@Wrjup_zKm|G&V zdSWFU%c)D9L-A53eKXScjp>EV6;4Qpel)J87{bT)1)T<8+Rpt`=>tr@@vDw^E-7eT zNI>L5r@#&uer7Zp0RV>wbvzzzQ4}IDR#Xgyjfm1DRKWc5OQ{&IY@GUeVRLe36!7MipxuC_R)rsA)s z(czGS^oKgMX_>Om+1;SWI09Ed6!um0)-5?`%0zxDg+#R@ha&C+#+Vp%)s<9_o zw^e*)HydKr-si-vCT4GJ2^szyu4e2i9NA-MQrMQ@rvnrEG6%r>&R3l)d|t0ti=nR7 z0}iURDt5#e5f#dhUyFU1xWXoNZnA6W-F{^b*5Rs}*H7XGIlI~Pl9uIiidz^NtxU>k z4L=#lM4V}7SviZA$J#^V#?UiBQsYB)RBmjLh2h^4e?}RR1C^ov4=GK{#?QPGOPkW! z7zV%DCh=gNOd{RD91Fp&C+A*ig2W&UZ(~v{X%gf?QhxVPzj$Vs2%e(OC}CQp`jTFm zSsPOkb*%QK4w%ZZNHQ_rV-Rp=GAy3yA|VR}(TJ&ZdtF9`Z7NMSO&0AN3nKPatgWp|zt;Zey}+@?wTHr}+TqrAacot;C84%6n2loWq~!Z_ z!hV|fXt{i+`>I0>Lo&l&XxceZSue+D!p2qrpRamNrGs%n(5Z^(Z~g^7WqGFjxNGCMwovE3px(A#3y({+w#poXcj(<4%?qtgaF_IiXR z_o%dY*|Gj@KC1VS#wq&sJ-f;tm{Lv&cqct~-K%Fdu*R_l7jgnCl_m%Z_d>_n=Bd;< zcqbdAd&UjpZMP0kG$Ne%Zy60$Wf8yaJ{;>Tv_2JBh(C^pnG2UuFc-%fUO>6raR17x+& zOU44v;&p?bo&TPil>R-Z0w!FhuZ38K);H{u<MMhw@b+uTW6D z%W~?|(dAaq?XS$*0Bve3kG|_c5j<_WFer8K!r(U)rhZDVqtPUwPM7JERAW>9u8dMj z_8!I}je6gEkjX$E78Dp>|IPsAQ0+P3MOtY_O?&w;v=C84k=mfVM`b5Xlew9(sHzdy zE1*O;&C_#Vkk88z8%(x&2_vt*c1f9DOf^pA5ZJY|LJpXvP_&cR8Tg7F&LxzmGH2znytB9Z!nFXw*1qFw-v)?0@Xj& zosNe65@ST@%c`zp7%^c#HO*8-+};1UwKr)$P9wteY7ovi0OQu|L@FTn2v zwRLBoigRDB^2J-8+hCw@_gj8U5TvWcyxiizHKNG2`&4piV!$+UQPMic_df87`V}!L z(I^8uB2nAGYTMFZ(2~Nt((0G3fU1Km9~1Ee%cRe*jhnOYk!>_%vgYk_x#8VI$t9W% zO3~0J2yhSJbLETe<1XWS(t_C-8ibe}NS>sauUu2+@Tp2%jZ|$Z zT`q5*nMGaySLQ`}XE0fMN2Qu+%P` z4PTnI$H?(a&ReG$n5q{^J4zUn0cAR7uulzSf10Rmtb)k0{!$0UdqlmIMH-FMXlRLZ z{55p)r4_&S=p&YLFt&tf?`X!_9f=GzWa3@R9P*+YvB%*L??vUPhPz&C2O}o54R164 zU8Lh@Ck6nTTYDmymM3ZNUci=KjKZQN=Fy>>YK;D!${9cLs~ z4=LMB8U2g*ayLrE)@&upbx%$ARqZZvkw&AQ_qIfbGOFU`A-%OwiW4mjct#F68*lmZ zJa;uC$I<*JnAV65TG$i(%UGRum`<1%m&-dn8Q2zeA!Y}n{*(T_DKh`qDs-ho|3VO1GW4^?~cV{D`{G$U1f}(#mC&aGx4_sz(+j07*_c7b z?nRZbW9*y0YamRCKB~+Al$&baGfTagPSa>7>d%LWqRYBx5Il6(dyqA~Y%^3iSoiK_ zX5zcCv9sn>Ls@zDc-g5aQ~whxRt!=)n_YV_bDnKY`A%&XP6T7v(9}`4VlksrqP7Sb zSDV&iv_7~W$f-5TR7)D817al|k%-!=nqQ^x;>rDgPXu{jYd9%Z??#~%>tUP(oB;dd zA!;@^)V{(H6y&OF5~@)O)uFHVL%ZQQ|!~0C0+L3Dfa{j<7ThiB=;S%ocdP;i!X^PF2uUKhD*(1759;01)J1Y zCt}zFwPR8HJHo;rbSw{Cpjugy6llWQ@SpDOq*j#ldA>XwZP)%D2jn$?Zr6A3rWll@ z(c*kW1<uV^n!JX8C(w`@v}C8sHuso1F3}c#cngS9u%3|5atOPE9S*H2Ch7 zLJBPOatx|sP}#Yus>I!YHH2E>!|wZ1oZJKeE5Jx~$xo8-w-xdCkyo_PIqfmw>WZ~V z$)QxQT4MscDXT{xot)F@KK0~ORs=!llGM~u)QB=kM4AS@l9cFuLjXO)N~i!CUx7&L zyE*$nimVaSdRg3F?RW!Ze16RsObU98v0R$yT-u^&^G%C&&1CY@Mcpxn{2&_(dR#rJ z3l0>b3MQ-DH-*Yvz(@z*Av;~UiytecFcG96b~bWl!!Anm?pRc1Kh5zrm<{}>zB+1- z1+6sr$}fqY_wx4fGo&gF`Zs#7Je1F3HMAes35NA`=8OsyolLitcxyHkD25C_fcU#K z_j8NOXj%S!F*~WqJC!rFa9UxdkpQ1ht`+G;!4TecMh#uJ@2vdvI87dA(d=Op8^JX| z%RX3&MzYedg7!;aq}lV*`RXCRwyk$9`vBksW3-1$ljglfbq-VXG}^?#A*wVh%Bn43 zG@N85rL1hx39w>R{0<*gL1~2G<;*E``~;XtJT~HvA0JZU?N%io9|i$as=YCRb?l#I9`{`FcDZuGWCfFj z=Ntzg_I(-C6Bl?v>hWMY3~XoD3{{)%?)S)-YC?|dXfCw-f+Hsd^FcokcHsKFA(z~W zxXFle7dZ?m-k&oWX@13fp&|P8*J@<2y~CD2*UMid=D37=IkT~Ty7>M< z=fc5bQM3NdP>AtxIg`RakpJgU0virf7VSRuWwZvf0-CbFpsn2XHC~=)mlxEY__wuZ zFVWBE3kz0#blPLZHb~=s7-5GY;UV<#Ae_d!w;QW;+KD#(z4y!*>|-ulnv~YdftJSO z{WoRoFx**g{yx+yLd*k+omys4mHirIhiqVrB4)3j297G}&YEeNLr!X7Hp>fw*XF;e zYfISL+x#b0q>%cxyF~Kq5^bxNf%pAg)UWt_41=o}Es<9MVhdMdeJo$n8h%Es={Ba!rk(p^?$A{@n8twrE@OWCf$>7Z#?J=N%jd#kqi``;a62Sk zkWFz=5?(fgZ7QdLl@NI+{@azli|w8qY<=>{^2>#qa-1M{CT29Lvq+c92e+(gh9jMJ zYv`n5#sZb$>Mq6x!cSjhTP#2RjbTYKUrTntWPj4K6)n1b(>9hjid;NEwp--hxKy?FH2$;X>}2Xb5bY?9n$ z*CMNpH&?cfC3)4}{{sME7@*+0DzJ&+>G+;))~L!n;Bwclsyjy@7xqW@YwY2dZdva2 z*pv`^va?$|RTuYwtFXf2gfnYz06Ql2ue1eiUTFA7Xkw?VvP+ef`rKiMMDnjfeoBmA<^N(}X)>Zf)1Yn)c?#S)r znVXSEw<=&AH^`eC%oV@Vjz5~Ym0e!)+K(7e^=0fr1Vl4|m!D9L)z;dFh%^(dO zT^X>ZDdl+vv{Xg*!k=5-5I?=fCx+|R9HP~uc9k{-Kc5!{B9rH%U0m9>?ux0`^~!F{ zi}wOlVtQ<|L3(>*YA)|s6MTcVKtCr=^oR;I?b%(i7XR=D(Ip%|1$f`RKBUU7KJ>iY zMioQLvXK>4Xu%`$wf0k`w!}++TaGU;s-db-VR_ezL%P=WtyvudR!p6E0){SW)q}H& zHMTGZwNxkMNuTT|O+*n!Wl~I#CB|mi=SqURRT>mlWOVABYyL2<`pMTcmZ?DAJ}+B= zO!USl#xDnHg;aI~lQXxB{Ch`{Zn=uCzaC58&}bJmP687}GOf>HZL#d0Vb_or&WZw9}t z{l&RwdB~sRS7SmB;}{LJ@#6z>XY(#aFTy|xxi5Jo)(}nwdeR6?ku8{x2l86K;;>WA zQjTLF^>Nhf3k9eieBu!0{1Ntp5od?BC!SbxM*OD&inXAYx1A4r*42V_ykHA@w8-mR`8p9{5;jwBR z#wwz6z~uRawne@8hc}V_#8YV1ht=%z=fr*aJM?c_7%`F|X8dK6&ronJ@a%S}KBB^D zphs?7GR14wi3Eo~i0!pi-$jdkTS8Qs6=|+CtBCj6rP;CGQVl3kW_vu6$yC5IpEN3x4hVb%$XWd)oUz@ibu zqbT_$LV1C3E$|FPa^fXTJyhns4sVxadg-xUeAdfKpL7)t#kTPqg{4PC_>j`ef;#!* ztU2Kbe@z3e4@@nTc?VF$W7l1*Qh#|o{zT3{>eDXpKnCn0VF0<94vs+0?`qG5fHnbW zU#t9{^EGy(LvW~-Iqfrbd&j259t8E#vMuum)T#*Da-~d|OG{i=IF@NwoOVM>!k@>v zE-kgjK+aIbG%5WR2 zi*wdBh~U>04oAeu(Z5%3U}Gdhan0_TM%mp>5REU%T=Pm`T^iE+?}J?feJt(y39#64 zm_A@jAY$`*8<|Oi?|P4u(Fnfuw3xP^Tm$W_xlhDaQ?50w$O@!|azz^Rz&^#A2jm{5 z#!5>D1*|@86}7XUoIt@uNnYEsZU3UtuYRN(_k(y}-vYrNH9#Ow zVV)jA2~_!yY%}%Ur?+_3*^DC8&VpKnSHNSvE0h#Z4hT~*3R3A42};7ndQso&HL}${ zlIH@(^y9#@$WnKqa>lC8^T$WmWoBPVnr7Gc^e7ivD_}@VH@d zjJ$9nID=c#=MPg3JjJLgUGWHl*gvkG12qpEUr6I_S_jE;6dR+>Wy@NVIt2xY;piM#^8%cx5Mz3PE^!7^rq$HI~QK^+hIHKgk-k>0r0f5h&s)7q5!nnnQlE+eEWIVKLIaRBY=I@_sfQn1>#u=@X9&F%ks zb?*OD%YEu*A^3^D!jK880R-{}MCO5Y7Vt^hpfa#ncR3Zv`mbVL`xkD=l;4#y zTy`r8ZFiaUq(M{P0-mz9;F&p_``*5w>otrPRb6VROT@Qcz!TDl!%T0>Z1Rzn_PJ^Uc#LbNR=2O$nWv+!07j=|FR38{YX zj(~n_{0ta-wrr_CXIo`&c6@Z^-R%WP#%P22U_r}xAG^gps(>S^x|%h?R{r9?SF9icp`xI36j=X&l_(R5!~+hhamCPp60AslfWDiQ2i#HSad`oGiOoV|+pht|lS_ zJ5}ewOh7&X4sEIu`<@0#1sGUi9{TWtOu9beCzndk)v#HZ73x!wrM@!i0!mCcYJJIZ z-z?$b6MrYb2sD%+COvGg=ABSrsic3s zGMi~~dg&4qZ;g^9Z^N|yP!zmXBcyT6JXrc~zki++?~X4pZI?bQcdQvzUkwIQ7=omV z0pBSA@Pqt9%ujP~n9|v8hxF~JPSgzrE9sZM%y<^h9ga*f$|5bs&eF1PAtH25SJ%iZUAH*0EV zgR{(6Rf{dXkHVd{QhzIUkC)7d4qSno>OOdF#S zG07``MI#XQC))nZFegKr4*dAoUmi}NxhA&~I{@HR?bpih9yk7?!Qf`5@g3LzOOy)x#P{g z9;f?FroxWN$pNVl-cwRXSejLWx95`2{d|HAW(B`XAFMA-^;r~IIezU+g3w*P{Hw%2Tz&8tgv%ohCe6zs+ zw7>-3q&W)0MBvyhj&U=pco*PvA0#+7t^og{)whq|?C@<7eA^7)PJ(YI;x~8j%`JYz z1mCdHH(>Y;6@Np;-%#;4RQwGUe?!IJQ1LfZ{0$XUIU;qFB literal 28946 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 BCO-fG diff --git a/testtext.txt b/testtext.txt index 95dc7ea..a676c45 100755 --- a/testtext.txt +++ b/testtext.txt @@ -14,4 +14,5 @@ स्वतन्त्र << N.T.RA ligature सर्वप्रथम << RAsup must be above VA, not P.RA -भारतीय अक्षर जटिल हैं क्ष्फ क्षफ \ No newline at end of file +भारतीय अक्षर जटिल हैं क्ष्फ क्षफ अऺ +ऄअआऑऒओऔ ॲॳॴॵॶॷ \ No newline at end of file diff --git a/work_files/devanagari_variable.psd b/work_files/devanagari_variable.psd index 724e9db..5151473 100644 --- a/work_files/devanagari_variable.psd +++ b/work_files/devanagari_variable.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38443d947cf0574281a75fb22946aa6436c313287fccf343bfecc9acb0f445c7 -size 558412 +oid sha256:690ddcdadd281ca7fbe6fa55c6141aa55e5af429086a18a827c189969ce3320f +size 552640