%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/old/usr/share/texlive/texmf-dist/fonts/source/public/cmcyr/
Upload File :
Create Path :
Current File : //data/old/usr/share/texlive/texmf-dist/fonts/source/public/cmcyr/cyrlc.mf

"Lowercase Softened N ligature";
call charbegin('010,pvbli+.5pwi/pu+pvbls+phbls+.5pwii/pu+phbli,px,0,.33.px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1; x3=good1(x1+pvbls.u); x4=x3;
top1y1=m; y1=y3; bot1y2=0; y2=y4;
w1 draw 1..2;					% left stem
w1 draw 3..4;					% right stem
if lcs0: call `a serif(1,1,2,-lcs);
	call `b serif(1,1,2,lcs);		% upper left serif
	call `c serif(2,1,1,-lcs);
	call `d serif(2,1,1,lcs);		% lower left serif
	call `e serif(3,1,4,-lcs);
	call `f serif(3,1,4,lcs);
	call `g	serif(4,1,3,-lcs);
	call `h serif(4,1,3,.5lcs);		% lower right serif
fi;
x5=x1; x6=x3; y5=y6; y5=.52m;
w0 draw 5..6;					% bar
x25=x3; x26=.5[x25,x27];
y25=y26=lb; x28=x26; bot0y28=0;
rt2x27=round(r-phbli.u); y27=.5[y25,y4];
lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns);	% bowl
w0 draw 25..26;					% connections to stem
w0 draw 4..28.
"Lowercase Softened L ligature";
call charbegin('011,plli+.4pwiii/pu+llwidth+phbls+.5pwii/pu+phbli,px,0,.33px.slant);
hpen; x1=good1((plli+llwidth).u+.4w3); x2=x1; bot0y1=0; top0y2=m; y3=y2; x4=x3;
cpen;
if ssflag=0: x6=(plli+1.5).u; x3=good0(x6+1.75u); y4=y3-s; 
new w99; w99=.8w3;
lft99x8=lft0x7=round(plli.u); y8=y7=.12m;
else: x7=plli.u; y7=y6; x7=x6-.75u; x3=good0(x6+.75u); y4=y3; fi;
bot0y6=-oo;
hpen;
w1 draw 1..2;                                    % vertical stroke
w0 draw 2..3;                                    % upper bar
if lcs0: call `a serif(1,1,2,.5lcs);             % all the serifs
           call `b serif(1,1,2,-lcs);
           call `c serif(2,1,1,lcs);
           call `d serif(2,1,1,-lcs);
           call `e dserif(3,0,4,lcs);
           call `f dserif(3,0,4,-lcs);
fi;
cpen;
if ssflag=0:
w0 draw 4{0,-1}..6{-1,0}..7{0,1};
w99 draw 8;                                       % bulb
else:
w0 draw 4{0,-1}..6{-1,0}..7;
fi;
x25=x1; x26=.5[x25,x27];
y25=y26=lb; x28=x26; bot0y28=0;
rt2x27=round(r-phbli.u); y27=.5[y25,y1];
lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns);	% bowl
w0 draw 25..26;					% connections to stem
w0 draw 1..28.
"Serbian dzh";
call charbegin('012,2.pvbli+pwi/pu+pvbls,px,.4pd,px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1; rt1x3=round(r-pvbli.u); x4=x3;
top1y1=m; y1=y3; bot1y2=0; y2=y4;
w1 draw 1..2;	% left stem
w1 draw 3..4;	% right stem
if lcs0: call `a serif(1,1,2,-lcs);
		call `b serif(1,1,2,lcs);	% upper left serif
	call `c serif(2,1,1,-lcs);
		call `d serif(2,1,1,.5lcs);	% lower left serif
	call `e serif(3,1,4,-lcs);
		call `f serif(3,1,4,lcs);	% upper right serif
	call `g	serif(4,1,3,-.5lcs);
		call `h serif(4,4,3,lcs);	% lower right serif
fi;
w0 draw 2..4;	% bar
new w99; w99=.85w1;
rt99x5=.5[x2,x4]=lft99x6; y5=0=y6;
x7=.2[x5,x6]; x8=.8[x5,x6]; y7=-.4d=y8;
ddraw 7..5,8..6.				% middle spur
"The letter i (for Ukrainian)";
call charbegin('014,2.pvbli+pw1/pu,ph,0,ph.slant);
hpen; x1=x2=good1 .5r; top1y1=m+ssdoo; bot1y2=0;
w1 draw 1..2;	% stem
cpen; top3y3=h-ssd; rt3x3=rt1x1; w3 draw 3;	% dot
if lcs0: call `a sserif(1,1,2,-lcs);	% upper serif
	call `b serif(2,1,1,-lcs);
	call `c serif(2,1,1,lcs);	% lower serif
fi.
"Ukrainian ebar";
call charbegin('015,poli+qza.(.5pwii/pu)+lepwidth+.5pw/pu+plzi,px,0,px.slant);
cpen; rt0x901=round(r-plzi.u);
if ssflag=0: y901=.12m; x1=.44[x901,x3];
else: y901=.15m; x1=.36[x901,x3]; fi;
x1=x2; top0y1=m+oo; bot0y2=-oo;
new w99; w99=qza.w2;
lft99x3=round(poli.u); y3=.5[y1,y2];
lft0x13=lft99x3; rt0x23=rt99x3;
y13=y23=y3;
call lune(1,2,23,13,.42rdns,.42rdns,.42rdns,.42rdns);	% bowl
if ssflag=0:
x903=x901+.3u; y903=y901+(1.5+qyg).w0;
x101=good0(x901-.2u); y101=.9m;
x103=x101+.1u; y103=y101-(1.5+qyg).w0;
new tailex; tailex=1.2; new tailmid; tailmid=.6;
call arcpoint(2,901,902,1,0,tailex,1,.5,.5);
call arcpoint(2,903,904,1,0,tailmid,1,.55,.5);
call arcpoint(1,101,102,1,0,tailex,-1,.5,.5);
call arcpoint(1,103,104,1,0,tailmid,-1,.55,.5);
 
w0 ddraw 2{1,0}..902{x901-x2,y901-y2}..901{tailex,1},
         2{1,0}..904{x903-x2,y903-y2}..903{tailmid,1};
 
w0 ddraw 1{1,0}..102{x101-x1,y101-y1}..101{tailex,-1},
         1{1,0}..104{x103-x1,y103-y1}..103{tailmid,-1};
else:
new slp; slp=1.2;
x101=x901; y101=.85m;
call arcpoint(1,101,102,1,0,slp,-1,.5,.5);
call arcpoint(2,901,902,1,0,slp,1,.5,.5);
w0 draw 1{1,0}..102{x101-x1,y101-y1}..101{slp,-1};
   draw 2{1,0}..902{x901-x2,y901-y2}..901{slp,1};
fi;
cpen;
if ssflag=0:
y509=y510=y511=round .51m; x509=round(rt0x901-(1.2+qyh).u);
x510=.5[x509,x511]; 
y515-y509=.1(m-e); y509-y516=.1(m-e);
x515=.4[x509,x510]; x516=.6[x510,x511];
new hgt,bdth,theta,sintheta,costheta,acoef,bcoef,ccoef;
hgt=w0; bdth=qzb.(1.75w0); theta=-30; sintheta=sind theta; costheta=cosd theta;
x511-.5bdth.costheta=rt99x3+.25u;
acoef=4.((costheta.costheta)/(bdth.bdth)+(sintheta.sintheta)/(hgt.hgt));
bcoef=8.sintheta.costheta(1/(bdth.bdth)-1/(hgt.hgt));
ccoef=4.((sintheta.sintheta)/(bdth.bdth)+(costheta.costheta)/(hgt.hgt));
spen(acoef,bcoef,ccoef,0,0,0,0);
draw 509..515..510{-2,-1}..516..511;			% center tilde
else:
x800=1[x3,x1]; y800=y3;
w0 draw 800..3;
fi.
"Serbian dbar";
call charbegin('016,2.pvbli+pwi/pu+pvbls,ph,0,.5px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1; top1y1=h; bot1y2=0;
w1 draw 1..2;				%left vertical stem
if lcs>0: call `a serif(2,1,1,-lcs);	%bot lft. lft. serif
	  call `b sserif(1,1,2,-lcs);	%top lft. lft. serif
	  call `c serif(2,1,1,.75lcs);	%bot inside lft. serif
fi;
x4=.5[x2,x7]; y4=-d;
rt0x5=rt1x1; y5=1/4[e,m];		%point near middle of left stem
x6=.5[x2,x7]; top0y6=m+oo;		%top of curve
rt1x7=round(r-pvbli.u); y7=.5[y6,y4];
cpen; w0 draw 5{0,1}..6{1,0};		%shoulder
call `e arc(6,7,w1);			%right bowl
call `f arc(4,7,w1);			%right bowl
cpen;
lft0x8=lft1x1-lcs.u; rt0x9=x6; y8=y9=.5[m,h];
w0 draw 8..9.				% top bar
"Serbian cprime";
call charbegin('017,2.pvbli+pwi/pu+pvbls,ph,0,.9px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1; top1y1=h; bot1y2=0;
w1 draw 1..2;					%left vertical stem
rt1x7=round(r-pvbli.u); y7=1/3[e,m]; x8=x7; bot1y8=0;
rt0x3=rt1x2; y3=1/4[e,m];
x4=.5[x2,x7]; top3y4=m+oo;
rt0x6=rt1x7; lft0x5=lft1x7;
new stwo; stwo = sqrt 1.23114413sqrttwo;	% the constant is $2^{3/10}$
x9=1/stwo[x4,x5]; x10=1/stwo[x4,x6];
y5=y6=y7; y9=y10=1/stwo[y7,y4];
w0 draw 3{0,1}..4{1,0};				% link
ddraw 4{1,0}..10{x6-x4,y6-y4}..6{0,-1},
	4{1,0}..9{x5-x4,y5-y4}..5{0,-1};	% shoulder
w1 draw 7..8;					% stem
if lcs>0: call `a serif(2,1,1,-lcs);	%bot lft. lft. serif
	  call `b sserif(1,1,2,-lcs);	%top lft. lft. serif
	  call `c serif(2,1,1,.75lcs);	%bot inside lft. serif
	  call `e serif(8,1,7,-.75lcs);	%bot inside rt serif
	  call `f serif(8,1,7,lcs);	%bot rt rt serif
fi;
cpen;
lft0x15=lft1x1-lcs.u; rt0x17=.6[x2,x8]; y15=y17=.5[m,h];
w0 draw 15..17.				% top bar
"The letter s";
call charbegin('036,7,px,0,px.slant-.5pu);
hpen; top0y1=m+oo; bot0y5=-oo;
x3=.5r; (y3-w6-.5w8)=(m-2w6-w8).(e/m);	% white space ratio
lft11x2=round u;
if lcs=0: x1=x5=x3; lft0x6=round 2/3u; rt0x7=round(r-u); rt11x4=round(r-.75u);
	y6=1/3[top0 0,y3]; y7=1/4[bot0m,y3];
	w0 draw 6{x5-x6,3(y5-y6)}..5{1,0};	% lower left stroke
	draw 7{x1-x7,2(y1-y7)}..1{-1,0};	% upper right stroke
else: if w0=w1: x1=x5=x3; x6=x2; x7=x4; rt11x4=round(r-u);
		y6=1/3[top0 0,y3]; y7=1/4[bot0m,y3];
		w0 draw 6{x5-x6,3(y5-y6)}..5{1,0};	% lower left stroke
		draw 7{x1-x7,2(y1-y7)}..1{-1,0};	% upper right stroke
		x8=x9=x6; y9=y6+.5lcs.aspect.u+eps; bot0y8=0;
		x10=x11=x7; y11=y7-.5lcs.aspect.u-eps; top0y10=m;
		w0 draw 8..9;	% lower serif
		draw 10..11;	% upper serif
	else: x1=x3-.5u; x5=x3+.5u; lft0x6=round u; rt0x7=round(r-u);
		rt11x4=round(r-.5u);
		y6=good6(5/7 y3)-1; y7=good6(2/7[y3,m+oo])+1;
		bot0y8=0; y9=y6; x8=x6; rt1x6=rt0x9;
		top0y10=m+oo; y11=y7; x10=x7; lft1x7=lft0x11;
		w0 ddraw 6..8, 9..8;	% lower serif
		ddraw 7..10, 11..10;	% upper serif
		rpen#; w1 draw 6{0,-1}..5{1,0};	% erase excess
		lpen#; w1 draw 7{0,1}..1{-1,0};	% ditto
		hpen; w0 draw 6{0,-1}..5{1,0};	% lower left stroke
		draw 7{0,1}..1{-1,0};	% upper right stroke
	fi;
fi;
new aa;
if m+oo-e>e: aa=m+oo-e;
else: aa=e;
fi;
call `a sdraw(1,2,3,4,5,w11,w8,-aa/(12u));	%  middle stroke
if ptsize>18:
  if mode=2: call snip(pa);
  fi;
fi.
"Cyrillic letter ja";
call charbegin('037,plki+.5pw/pu+ljawidth+.5pwi/pu+pvbli,px,0,px.slant);
hpen; rt1x1=rt1x2=round(r-pvbli.u); top1y1=m; bot1y2=0;
w1 draw 1..2;							%stem
if lcs>0: call `a serif(1,1,2,lcs);				%upper serif
	call `b serif(2,1,1,lcs);
	call `c serif(2,1,1,-lcs);				%lower serifs
fi;
x3=x1; y3=.5m;
x25=good2(x1-(pvbls-.75).u); y25=.5[y1,y3];
rt0x26=rt2x25; lft0x27=lft2x25; y26=y27=1[y3,y25];
x29=.5[x1,x25]; top0y29=m;
x28=.5[x3,x25]; y28=y3;
call `e lune(29,28,26,27,.48rdns,.48rdns,.48rdns,.48rdns);	% upper bowl
cpen; w0 draw 29..1;					% connections to stem
         draw 28..3;
 
bot0y460=-oo;
if ssflag=0:
x450=lft1x3-0u; y450=y3;
x460=(plki+1).u;
x454=(.52+qya)[x450,x460]; y454=.5[y450,y460];
x455=.82[x450,x460]; y455=.8[y450,y460];
 
new dirml,dirmr; dirml=.45+qyb; dirmr=.3+qyc;
 
 
call arcpoint(450,454,452,-1,0,dirml(x460-x450),y460-y450,.55,.3);
call arcpoint(454,460,458,dirml(x460-x450),y460-y450,-1,0,.6,.5);
call arcpoint(450,455,451,-1,0,dirmr(x460-x450),y460-y450,.5,.5);
call arcpoint(455,460,459,dirmr(x460-x450),y460-y450,-1,0,.5,.4);
 
call arcpoint(450,451,421,-1,0,x455-x450,y455-y450,.4,.6);
call arcpoint(450,452,422,-1,0,x454-x450,y454-y450,.4,.5);
call arcpoint(451,455,425,x455-x450,y455-y450,dirmr(x460-x450),y460-y450,.5,.5);
call arcpoint(452,454,424,x454-x450,y454-y450,dirml(x460-x450),y460-y450,.6,.3);
 
w0 ddraw 450{-1,0}..422{x452-x450,y452-y450}..			% leg
          452{x454-x450,y454-y450}..424{x454-x452,y454-y452}..
          454{dirml(x460-x450),y460-y450}..458{x460-x454,y460-y454}..
          460{-1,0},
         450{-1,0}..421{x451-x450,y451-y450}..
          451{x455-x450,y455-y450}..425{x455-x451,y455-y451}..
          455{dirmr(x460-x450),y460-y450}..459{x460-x455,y460-y455}..
          460{-1,0};
w0 draw 3..450;
 
lft0x469=round(plki.u); y469=.25y450;
x465=.7[x460,x469]; y465=.3[y460,y469];
w0 draw 460{-1,0}..465..469{0,1};			% foot
else:
hpen; lft2x460=plki.u;
w2 draw 28..460;
fi.
"Cyrillic letter ju";
call charbegin('030,pvbli+.5pwi/pu+(4+qyi)+(lowidth-.75)+.5pwii/pu+poli,px,0,.5.px.slant);
hpen; lft1x1=round (pvbli.u); x2=x1; top1y1=m; bot1y2=0;
w1 draw 1..2;					%left stem
if lcs>0: call `a serif(1,1,2,-lcs);
	call `b serif(1,1,2,lcs);		%upper serifs
	call `c serif(2,1,1,-lcs);
	call `d serif (2,1,1,lcs);		%lower serifs
fi;
x3=x1; y3=.5m; y4=y3; x4=good2(x1+(4+qyi).u);
w0 draw 3..4;					%horizontal bar
rt2x6=round(r-poli.u); x5=.5(x4+x6)=x7; top0y5=m+o; bot0y7=-o; y6=y4;
lft0x24=lft2x4; rt0x34=rt2x4; y24=y34=y4; lft0x26=lft2x6;
rt0x36=rt2x6; y26=y36=y6;
call lune(5,7,26,36,.42rdns,.42rdns,.42rdns,.42rdns);	% bowl
call lune(5,7,34,24,.42rdns,.42rdns,.42rdns,.42rdns).
"Cyrillic letter zh";
call charbegin('031,2.plki+pw/pu+2.lkwidth,px,0,px.slant);
hpen; x1=good1 .5r; x3=x2=x1;
top1y1=m; bot1y2=0;
w1 draw 1..2;					% stem
if lcs>0: call `a serif(1,1,2,-lcs);		% serifs on stem
          call `b serif(1,1,2,lcs);
          call `c serif(2,1,1,-lcs);
          call `d serif(2,1,1,lcs);
fi;
cpen;
new w99; w99=.8w3;
y3=good6 .5m; rt99x118=round(r-(plki+.5).u); top99y118=m;
y150=y3;
if ssflag=0: x150=rt1x3; x160=x118-.25w99; top0y160=m+oo; 
else: x150=rt1x3+u; rt0x160=r-(plki+.5).u; top0y160=m+oo; fi;
rt0x161=rt99x118; y161=y118;
x154=.6[x150,x160]; y154=.55[y150,y160];
x155=.73[x150,x160]; y155=.75[y150,y160];
 
lft99x318=round((plki+.5).u); top99y318=m;
y350=y3;
if ssflag=0: x350=lft1x3; x360=x318+.25w99; top0y360=m+oo; 
else: x350=lft1x3-u; lft0x360=(plki+.5).u; top0y360=m+oo; fi;
lft0x361=lft99x318; y361=y318;
x354=.6[x350,x360]; y354=.55[y350,y360];
x355=.73[x350,x360]; y355=.75[y350,y360];
 
new dirml,dirmr; dirml=.5; dirmr=.25;
 
call arcpoint(150,154,152,1,0,dirml(x160-x150),y160-y150,.6,.4);
call arcpoint(154,160,158,dirml(x160-x150),y160-y150,1,0,.68,.5);
call arcpoint(150,155,151,1,0,dirmr(x160-x150),y160-y150,.4,.6);
call arcpoint(155,160,159,dirmr(x160-x150),y160-y150,1,0,.55,.5);
 
call arcpoint(150,151,121,1,0,x155-x150,y155-y150,.78,.5);
call arcpoint(151,155,125,x155-x150,y155-y150,dirmr(x160-x150),y160-y150,.5,.5);
call arcpoint(150,152,122,1,0,x154-x150,y154-y150,.5,.5);
call arcpoint(152,154,124,x154-x150,y154-y150,dirml(x160-x150),y160-y150,.5,.5);
 
call arcpoint(350,354,352,-1,0,dirml(x360-x350),y360-y350,.6,.4);
call arcpoint(354,360,358,dirml(x360-x350),y360-y350,-1,0,.68,.5);
call arcpoint(350,355,351,-1,0,dirmr(x360-x350),y360-y350,.4,.6);
call arcpoint(355,360,359,dirmr(x360-x350),y360-y350,-1,0,.55,.5);
 
call arcpoint(350,351,321,-1,0,x355-x350,y355-y350,.78,.5);
call arcpoint(351,355,325,x355-x350,y355-y350,dirmr(x360-x350),y360-y350,.5,.5);
call arcpoint(350,352,322,-1,0,x354-x350,y354-y350,.5,.5);
call arcpoint(352,354,324,x354-x350,y354-y350,dirml(x360-x350),y360-y350,.5,.5);
 
if ssflag=0:
w0 ddraw 150{1,0}..122{x152-x150,y152-y150}..	% upper right arm
          152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
          154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
          160..161{0,-1},
         150{1,0}..121{x151-x150,y151-y150}..
          151{x155-x150,y155-y150}..125{x155-x151,y155-y151}..
          155{dirmr(x160-x150),y160-y150}..159{x160-x155,y160-y155}..
          160..161{0,-1};
w99 draw 118;					% right bulb
 
w0 ddraw 350{-1,0}..322{x352-x350,y352-y350}..	% upper left arm
          352{x354-x350,y354-y350}..324{x354-x352,y354-y352}..
          354{dirml(x360-x350),y360-y350}..358{x360-x354,y360-y354}..
          360..361{0,-1},
         350{-1,0}..321{x351-x350,y351-y350}..
          351{x355-x350,y355-y350}..325{x355-x351,y355-y351}..
          355{dirmr(x360-x350),y360-y350}..359{x360-x355,y360-y355}..
          360..361{0,-1};
w99 draw 318;					% left bulb
else:
x170=x160+.3u; y170=y160;
w0 draw 150{1,0}..122{x152-x150,y152-y150}..	% upper right arm
          152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
          154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
          160{1,0}..170;
x370=x360-.3u; y370=y360;
w0 draw 350{-1,0}..322{x352-x350,y352-y350}..	% upper left arm
          352{x354-x350,y354-y350}..324{x354-x352,y354-y352}..
          354{dirml(x360-x350),y360-y350}..358{x360-x354,y360-y354}..
          360{-1,0}..370;
fi;
 
y250=y3;
if ssflag=0: x250=rt1x3+.5u; x260=r-(plki+1.5).u; bot0y260=-oo;
else: x250=rt1x3+1.5u; rt0x260=r-plki.u; bot0y260=-oo; fi;
x254=(.55+qyd)[x250,x260]; y254=.5[y250,y260];
x255=.84[x250,x260]; y255=.8[y250,y260];
 
y450=y3;
if ssflag=0: x450=lft1x3-.5u; x460=(plki+1.5).u; bot0y460=-oo;
else: x450=lft1x3-1.5u; lft0x460=plki.u; bot0y460=-oo; fi;
x454=(.55+qyd)[x450,x460]; y454=.5[y450,y460];
x455=.84[x450,x460]; y455=.8[y450,y460];
 
new dirml,dirmr; dirml=.37+qye; dirmr=.15+qyf;
 
call arcpoint(250,254,252,1,0,dirml(x260-x250),y260-y250,.55,.3);
call arcpoint(254,260,258,dirml(x260-x250),y260-y250,1,0,.6,.5);
call arcpoint(250,255,251,1,0,dirmr(x260-x250),y260-y250,.5,.5);
call arcpoint(255,260,259,dirmr(x260-x250),y260-y250,1,0,.5,.4);
 
call arcpoint(250,251,221,1,0,x255-x250,y255-y250,.4,.6);
call arcpoint(250,252,222,1,0,x254-x250,y254-y250,.4,.5);
call arcpoint(251,255,225,x255-x250,y255-y250,dirmr(x260-x250),y260-y250,.5,.5);
call arcpoint(252,254,224,x254-x250,y254-y250,dirml(x260-x250),y260-y250,.6,.3);
 
call arcpoint(450,454,452,-1,0,dirml(x460-x450),y460-y450,.55,.3);
call arcpoint(454,460,458,dirml(x460-x450),y460-y450,-1,0,.6,.5);
call arcpoint(450,455,451,-1,0,dirmr(x460-x450),y460-y450,.5,.5);
call arcpoint(455,460,459,dirmr(x460-x450),y460-y450,-1,0,.5,.4);
 
call arcpoint(450,451,421,-1,0,x455-x450,y455-y450,.4,.6);
call arcpoint(450,452,422,-1,0,x454-x450,y454-y450,.4,.5);
call arcpoint(451,455,425,x455-x450,y455-y450,dirmr(x460-x450),y460-y450,.5,.5);
call arcpoint(452,454,424,x454-x450,y454-y450,dirml(x460-x450),y460-y450,.6,.3);
 
if ssflag=0:
w0 ddraw 250{1,0}..222{x252-x250,y252-y250}..	% left leg
          252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
          254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
          260{1,0},
         250{1,0}..221{x251-x250,y251-y250}..
          251{x255-x250,y255-y250}..225{x255-x251,y255-y251}..
          255{dirmr(x260-x250),y260-y250}..259{x260-x255,y260-y255}..
          260{1,0};
 
w0 ddraw 450{-1,0}..422{x452-x450,y452-y450}..	% left leg
          452{x454-x450,y454-y450}..424{x454-x452,y454-y452}..
          454{dirml(x460-x450),y460-y450}..458{x460-x454,y460-y454}..
          460{-1,0},
         450{-1,0}..421{x451-x450,y451-y450}..
          451{x455-x450,y455-y450}..425{x455-x451,y455-y451}..
          455{dirmr(x460-x450),y460-y450}..459{x460-x455,y460-y455}..
          460{-1,0};
else:
x270=x260; bot0y270=-oo;
w0 draw  250{1,0}..222{x252-x250,y252-y250}..	% left leg
          252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
          254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
          260..270{1,0};
x470=x460; bot0y470=-oo;
w0 draw  450{-1,0}..422{x452-x450,y452-y450}..	% left leg
          452{x454-x450,y454-y450}..424{x454-x452,y454-y452}..
          454{dirml(x460-x450),y460-y450}..458{x460-x454,y460-y454}..
          460..470{-1,0};
fi;
cpen;
w0 draw 3..250;					% connections to stem
   draw 3..450;
 
if ssflag=0:
rt0x269=round(r-plki.u); y269=.25y250;
x265=.7[x260,x269]; y265=.3[y260,y269];
w0 draw 260{1,0}..265..269{0,1};		% foot on right leg
 
lft0x469=round(plki.u); y469=.25y450;
x465=.7[x460,x469]; y465=.3[y460,y469];
w0 draw 460{-1,0}..465..469{0,1};		% foot on left leg
fi.
"Dotless letter i (for Ukrainian)";
call charbegin('075,2.pvbli+pw1/pu,px,0,px.slant);
hpen; x1=x2=good1 .5r; top1y1=m+ssdoo; bot1y2=0;
w1 draw 1..2;	% stem
if lcs0: call `a sserif(1,1,2,-lcs);	% upper serif
	call `b serif(2,1,1,-lcs);
	call `c serif(2,1,1,lcs);	% lower serif
fi.
"Lowercase Cyrillic soft sign";
call charbegin('176,pvbli+.5pwi/pu+phbls+.5pwii/pu+phbli,px,0,.33.px.slant);
hpen; lft1x1=lft1x2=round(pvbli.u);
top1y1=m; bot1y2=0;
w1 draw 1..2;					% stem
if lcs  0:
	call `a serif(1,1,2, -lcs);		% upper stem serif
	call `b serif(1,1,2,  lcs);
	call `c serif(2,1,1, -lcs);		% lower stem serif
	call `d serif(2,1,1,.25lcs);
fi;
x25=x1; x26=.5[x25,x27];
y25=y26=lb; x28=x26; bot0y28=0;
rt2x27=round(r-phbli.u); y27=.5[y25,y2];
lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns);	% bowl
w0 draw 25..26;					% connections to stem
w0 draw 2..28.
"Lowercase Cyrillic hard sign";
call charbegin('177,plai+.5pw/pu+(plal-1)+phbls+.5pwii/pu+phbli,px,0,1/3px.slant);
hpen; x1=good1((plai+plal-1).u+.5w0); x2=x1; top1y1 = m; bot1y2 = 0;
w1 draw 1..2;					% stem
if lcs  0:
	call `a serif(1,1,2,-.5lcs);		% upper stem serif
	call `b serif(1,1,2,  lcs);
	call `c serif(2,1,1, -lcs);		% lower stem serif
	call `d serif(2,1,1,.5lcs);
fi;
lft0x3=round(plai.u); y3=y1;			% upper arm and serif
   x4= good0(x3-.5u); y4 = y3-sas;
call `e arm(1,3,4,sas);
x25= x1; x26=.4[x25,x27];
y25= y26=lb+oo; x28=x26; bot0y28=0;
rt2x27=round(r-phbli.u); y27=.5[y25,y2];
lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns);	% bowl
x44=x25; y44=.2[y25,y27];
w0 draw 44{0,1}..26{1,0};			% connections to stem
w0 draw 2..28.
"Cyrillic letter eprime";
call charbegin('013,plzi+.5pw/pu+lepwidth+qza.(.5pwii/pu)+poli,px,0,.5.px.slant);
cpen; lft0x901=round(plzi.u);
if ssflag=0: y901=.12m; x1=.44[x901,x3];
else: y901=.15m; x1=.36[x901,x3]; fi;
x1=x2; top0y1=m+oo; bot0y2=-oo;
new w99; w99=qza.w2;
rt99x3=round(r-poli.u); y3=.5[y1,y2];
rt0x13=rt99x3; lft0x23=lft99x3;
y13=y23=y3;
call lune(1,2,23,13,.42rdns,.42rdns,.42rdns,.42rdns);	% bowl
if ssflag=0:
x903=x901-.3u; y903=y901+(1.5+qyg).w0;
lft0x101=round(lft0x901+.2u); y101=.9m;
x103=x101-.1u; y103=y101-(1.5+qyg).w0;
new tailex; tailex=-1.2; new tailmid; tailmid=-.6;
call arcpoint(2,901,902,-1,0,tailex,1,.5,.5);
call arcpoint(2,903,904,-1,0,tailmid,1,.55,.5);
call arcpoint(1,101,102,-1,0,tailex,-1,.5,.5);
call arcpoint(1,103,104,-1,0,tailmid,-1,.55,.5);
 
w0 ddraw 2{-1,0}..902{x901-x2,y901-y2}..901{tailex,1},
         2{-1,0}..904{x903-x2,y903-y2}..903{tailmid,1};
 
w0 ddraw 1{-1,0}..102{x101-x1,y101-y1}..101{tailex,-1},
         1{-1,0}..104{x103-x1,y103-y1}..103{tailmid,-1};
else:
new slp; slp=-1.2;
x101=x901; y101=.85m;
call arcpoint(1,101,102,-1,0,slp,-1,.5,.5);
 
call arcpoint(2,901,902,-1,0,slp,1,.5,.5);
w0 draw 1{-1,0}..102{x101-x1,y101-y1}..101{slp,-1};
   draw 2{-1,0}..902{x901-x2,y901-y2}..901{slp,1};
fi;
 
cpen;
if ssflag=0:
y509=y510=y511=round .51m; x509=round(lft0x901+(1.2+qyh).u); x510=.5[x509,x511]; 
y515-y509=.1(m-e); y509-y516=.1(m-e);
x515=.4[x509,x510]; x516=.6[x510,x511];
new hgt,bdth,theta,sintheta,costheta,acoef,bcoef,ccoef;
hgt=w0; bdth=qzb.(1.75w0); theta=30; sintheta=sind theta; costheta=cosd theta;
x511+.5bdth.costheta=lft99x3-.25u;
acoef=4.((costheta.costheta)/(bdth.bdth)+(sintheta.sintheta)/(hgt.hgt));
bcoef=8.sintheta.costheta(1/(bdth.bdth)-1/(hgt.hgt));
ccoef=4.((sintheta.sintheta)/(bdth.bdth)+(costheta.costheta)/(hgt.hgt));
spen(acoef,bcoef,ccoef,0,0,0,0);
draw 509..515..510{2,-1}..516..511;			% center tilde
else:
x800=1[x3,x1]; y800=y3;
w0 draw 800..3;
fi.
 
"Cyrillic letter a";
call charbegin(`a,plcali+.5pwii/pu+lawidth+.5pwi/pu+plcari,px,0,1/3[pe,px].slant);
cpen; lft3x1=round((plcali+.8).u);
if top3(top3top6e+2)>.9[e,m]: top3y1=.9[e,m];
else: y1=top3top6e+2;
fi;
w3 draw 1;					% bulb
hpen; lft0x2=lft3x1; y2=y1; x3=4u; top0y3=m+oo;
rt1x4=rt1x5=round(r-plcari.u); y4=1/3[e,m];
w0 draw 2{0,1}..3{1,0}; call `a arc(3,4,w1);	% shoulder
if lcs=0: bot1y5=0; w1 draw 4..5;		% stem
else: rt0x7=round(r-(plcari-1.5).u); y5=.2[top1 0,e];
	w1 draw 4..5;				% stem
	if rt1x5+.75ulft0x7: rt0x6=.5[rt1x5,rt0x7];
		bot0y6=0; y7=.5e;
		draw |w1#|5{0,-1}..
                       |w0#|6{1,0}..7{0,1};	% hook
	else: rt1x6=round(r-.5u); bot1y6=0;
		w1 draw 5{0,-1}..6{1,0};	% foot
	fi;
fi;
x8=x9+1.5u; y8=e; x9=x4; y9=e;
lft2x11=round(plcali.u); y11=.2[w6,y9];
x12=.23[x11,x8]; bot0y12=-oo; x13=.38[x11,x8]; y13=.015[y12,y9];
x10=x9; y10=.3[y12,y9];
call arc(9,11,w2);				% upper part of bowl
draw |w2#|11{0,-1}..
       |.7[w0,w2]|12{1,0}..|w0#|13..10(..8).	% lower part of bowl
"Cyrillic letter b";
call charbegin(`b,2.poli+pwii/pu+lowidth-.25,ph,0,ph.slant-.25pu);
hpen; x1=.5[x2,x3]; lft2x2=round(poli.u); rt2x3=round(r-poli.u);
top0y1=m+oo; bot0y2=-oo; y3=y2;
call `a darc(1,2,w2); call `b darc(1,3,w2);			% bowl
lft0x4=lft2x2; y4=.5[y1,y2];
x5=x2+2u; x6=x3-2u; y5=.6[m,h]; y6=2/3[m,h];
x7=x8=x5; x9=x10=x6; rt0x11=rt2x3; top0y11=h+oo;
vpen; w7 draw 5..6;						% bar
top7y5=top6y7; top7y6=top6y9; bot7y5=bot6y8; bot7y6=bot6y10;
hpen; w0 ddraw 4{0,1}..7{x6-x5,y6-y5}, 4{0,1}..8{x6-x5,y6-y5};	% link
ddraw 9{x6-x5,y6-y5}..11{0,1}, 10{x6-x5,y6-y5}..11{0,1}.	% hook
"Cyrillic letter ts";
call charbegin(`c,pvbli+.5pwi/pu+pvbls+plstla+.5pw/pu+plali,px,psas,px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1; x3=good1(r-.5w0-(plali+plstla).u);
x4=x3; x5=.5[x1,x3];
top0y1=m; bot0y2=0; y3=y1; y2=y5=y4=y6;
rt0x6=round(r-plali.u); x7=good0(x6+.5u); y7=y6-sas;
if lcs0:call `a serif(1,1,2,-lcs);
	call `b serif(1,1,2,lcs);
	call `c serif(2,1,1,-lcs);
        call `d serif(2,1,1,.5lcs);
	call `e serif(3,1,4,-lcs);
	call `f serif(3,1,4,lcs);
	call `g serif(4,1,3,-.5lcs);
	new tmp; tmp=crisp; new crisp; crisp=0;
	rt0x12=rt1x4;
	call `h serif(4,1,3,(x6-x12)/u);
	new crisp; crisp=tmp;
fi;
w1 draw 1..2;   				% left stem
w1 draw 3..4;   				% right stem
w0 draw 2..4;   				% bar
call `i carm(5,6,7,sas).			% lower arm
"Cyrillic letter d";
call charbegin(`d,2.plali+pw/pu+ldwidth+plstla,px,psas,px.slant);
hpen; lft0x9=lft0x8-.5u; lft0x8=round(plali.u);
x5=.5[x1,x3]; rt0x6=round(r-plali.u); rt0x7=rt0x6+.5u;
x1=good0(x8+2u); x2=x8+u; x3=good1(r-(plali+plstla).u-.5w0); x4=x3;
top0y1=m; bot0y2=0; y3=y1; y8=y2=y5=y4=y6; y7=y9=y6-sas;
y10=y1-s; y11=y2+s;
x10=x1; 
(x11-x2)/(y11-y2)=(.3(x1+x3)-x2)/(.3(y1+y3)-y2);
if lcs0: call `a dserif(1,0,10,-lcs);
	call `b dserif(1,0,10,lcs);	% upper left serif
	call `c serif(3,1,4,-.5lcs);
	call `d serif(3,1,4,lcs);	% upper right serif
	new tmp; tmp=crisp; new crisp; crisp=0;
	call `e serif(2,0,11,(x8-x2)/u);% lower left serif
	rt0x12=rt1x4;
	call `j serif(4,1,3,(x6-x12)/u);% lower right serif
	new crisp; crisp=tmp;
	call `f serif(2,0,11,lcs);	% lower left serif
	call `i serif(4,1,3,-.5lcs);	% lower right serif
fi;
w1 draw 3..4;	                        % right stem
w0 draw 10{0,-1}..11{x2-x11,y2-y11};	% diagonal
draw 1..3;	                        % upper bar
call `g carm(5,8,9,sas);		% left arm
call `h carm(5,6,7,sas).		% right arm
"Cyrillic letter e";
call charbegin(`e,2.poli+pwii/pu+(lowidth-1.25),px,0,pe.slant);
hpen; x3=.5r; top0y3=m+oo; y1=e; y2=.5[y5,y3];
lft2x2=round(fixwidth[poli.u,(poli+.25).u]); rt2x1=round(r-fixwidth[poli.u,(poli+.25).u]);
fi;
bot0y5=-oo; x5=x3+.5u;
new save; save=sqrttwo; new sqrttwo; sqrttwo=sqrt 1.3save;
call `a arc(3,1,w1);				% bowl
new sqrttwo; sqrttwo=save;
call `b arc(3,2,w2); call `c arc(5,2,w2);	% stroke
new aa; y1=y4=aa[y2,y3]; x4-1=(sqrt(1-aa.aa))[x3,x2];
w0 draw 4..1;					% bar
if w0=w1: x6=x1; x7-x5=x1-x3; y7=y2;
	new aa; x6=aa[x5,x7]; y6=(sqrt(1-aa.aa))[y7,y5];
else: rt0x6=rt2x1; x7=x6; y6=.5e-1; y7=e;
fi;
w0 draw 5{1,0}..6(..7).				% point
"Cyrillic letter f";
call charbegin(`f,2.poli+pwi/pu+lfwidth,ph,pd,.6px.slant);
hpen; x1=x2=good1 .5r; top1y1=h; bot1y2=-d;
w1 draw 1..2;	% stem
if lcs0: call `a sserif(1,1,2,-lcs);           % upper serif
	call `b serif(2,1,1,-lcs);
	call `c serif(2,1,1,lcs);                % lower serif
fi;
lft1x7=round(poli.u); rt0x5=rt1x1;
x3=.6[x5,x7];
x3+x4=x5+x6=x7+x8=r; y3=y4; y5=y6; y7=y8;         % symmetry
top0y3=m+oo; bot0y5=-oo; y5=y7;
x10+x3=2x1; y9=y7; x9+x4=2x1; y10=y8;
x11=x1; 2y11=y3+y10;
call `d darc(4,8,w1);                             % right bowl
call `e darc(3,7,w1);                             % left bowl
call `f arc(4,11,w0); call `g arc(10,11,w0);      % right innards
call `h arc(3,11,w0); call `i arc(9,11,w0).       % left innards
"Cyrillic letter g";
call charbegin(`g,pvbli+.5pwi/pu+plal+.5pw/pu+plai,px,0,px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1; top1y1=m; bot1y2=0;
w1 draw 1..2;				% stem
if lcs0:
	call `a serif(1,1,2,-lcs);
	call `b serif(1,1,2,.5lcs);	% upper stem serif
	call `c serif(2,1,1,-lcs);
	call `d serif(2,1,1,lcs);	% lower stem serif
fi;
rt0x3=round(r-plai.u); x4=good0(x3+.5u); y3=y1; y4=y3-sas;
call `e arm(1,3,4,sas).			% upper arm and serif
"Cyrillic letter kh";
call charbegin(`h,2.pvbli+pwii/pu+lkhwidth,px,0,px.slant);
hpen; lft2x1=round(pvbli.u); rt2x4=round(r-pvbli.u); x3=x1; x2=good0(x4-.25u);
top2y1=m; bot2y4=0; y2=y1; y3=y4;
w2 draw 1..4;				% upper left to lower right diagonal
w0 draw 3..2;				% lower left to upper right diagonal
if lcs0: call `a serif(1,2,4,-lcs);
	call `b serif(1,2,4,lcs);	% upper left serif
	call `c serif(4,2,1,-lcs);
	call `d serif(4,2,1,lcs);	% lower right serif
	new ss; ss=.5(w2-w0)/u;		% correction to \\{lcs} makes $w0$ like $w2$
	call `e dserif(2,0,3,-lcs-ss);
	call `f dserif(2,0,3,lcs+ss);	% upper right serif
	call `g dserif(3,0,2,-lcs-ss);
	call `h dserif(3,0,2,lcs+ss);	% lower left serif
fi.
"Cyrillic letter i";
call charbegin(`i,2.pvbli+pwi/pu+pvbls,px,0,px.slant);
hpen; lft1x1=lft1x2=round(pvbli.u);
rt1x3=rt1x4=round(r-pvbli.u);
top1y1=m; y1=y3;
bot1y2=0; y2=y4;
w1 draw 1..2;					% stems
   draw 3..4;
if lcs  0:
	call `a serif(1,1,2,-lcs);		% upper left serif
	call `b serif(1,1,2, lcs);
	call `c serif(2,1,1,-lcs);		% lower left serif
	call `d serif(2,1,1, lcs);
	call `e serif(3,1,4,-lcs);		% upper right serif
	call `f serif(3,1,4, lcs);
	call `g serif(4,1,3,-lcs);		% lower right serif
	call `h serif(4,1,3, lcs);
fi;
new w99; w99=.8w0;
w99 draw 3..2.					% bar
"The letter j";
call charbegin(`j,6,ph,pd,ph.slant+.5pwi-2pu);
hpen; x1=x2=good1(r-2.5u);
if fixwidth=0: rt3x4=round 1.25u;
else: lft3x4=round u;
fi;
cpen; top3y3=h-ssd; rt3x3=rt1x1; w3 draw 3;	% dot
bot3y4=-.9d; w3 draw 4;	% bulb
hpen; top1y1=m+ssdoo; bot1y2=-1/3 d;
bot0y5=-d-oo; y4=y6; lft0x6=lft3x4; x5=.5[x2,x6];
draw |w1|1..|w1#|2{0,-1}..|w0#|5{-1,0}..6{0,1};	% stem and tail
if lcs0: call `a sserif(1,1,2,-lcs);	% serif
fi;
if ptsize>14:
  if mode=2: call snip(pa); call snip(px+po); call snip(0);
  fi;
fi.
"Cyrillic letter k";
call charbegin(`k,pvbli+.5pwi/pu+lkwidth+.5pw/pu+plki,px,0,px.slant);
hpen; lft1x1=round(pvbli.u); x3=x2=x1; top1y1=m; bot1y2=0;
w1 draw 1..2;					% stem
if lcs>0: call `a serif(1,1,2,-lcs);		% serifs on stem
          call `b serif(1,1,2,lcs);
          call `c serif(2,1,1,-lcs);
          call `d serif(2,1,1,lcs);
fi;
cpen;
new w99; w99=.8w3;
y3=good6 .5m; rt99x118=round(r-(plki+.5).u); top99y118=m;
y150=y3;
if ssflag=0: x150=rt1x3; x160=x118-.25w99; top0y160=m+oo; 
else: x150=rt1x3+u; rt0x160=r-(plki+.5).u; top0y160=m+oo; fi;
rt0x161=rt99x118; y161=y118;
x154=.6[x150,x160]; y154=.55[y150,y160];
x155=.73[x150,x160]; y155=.75[y150,y160];
 
new dirml,dirmr; dirml=.5; dirmr=.25;
 
call arcpoint(150,154,152,1,0,dirml(x160-x150),y160-y150,.6,.4);
call arcpoint(154,160,158,dirml(x160-x150),y160-y150,1,0,.68,.5);
call arcpoint(150,155,151,1,0,dirmr(x160-x150),y160-y150,.4,.6);
call arcpoint(155,160,159,dirmr(x160-x150),y160-y150,1,0,.55,.5);
 
call arcpoint(150,151,121,1,0,x155-x150,y155-y150,.78,.5);
call arcpoint(151,155,125,x155-x150,y155-y150,dirmr(x160-x150),y160-y150,.5,.5);
call arcpoint(150,152,122,1,0,x154-x150,y154-y150,.5,.5);
call arcpoint(152,154,124,x154-x150,y154-y150,dirml(x160-x150),y160-y150,.5,.5);
 
if ssflag=0:
w0 ddraw 150{1,0}..122{x152-x150,y152-y150}..	% upper arm
          152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
          154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
          160..161{0,-1},
         150{1,0}..121{x151-x150,y151-y150}..
          151{x155-x150,y155-y150}..125{x155-x151,y155-y151}..
          155{dirmr(x160-x150),y160-y150}..159{x160-x155,y160-y155}..
          160..161{0,-1};
w99 draw 118;					% bulb
else:
x170=x160+.3u; y170=y160;
w0 draw 150{1,0}..122{x152-x150,y152-y150}..	% upper arm
          152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
          154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
          160{1,0}..170{1,0};
fi;
 
y250=y3;
if ssflag=0: x250=rt1x3+.5u; x260=r-(plki+1.5).u; bot0y260=-oo; 
else: x250=rt1x3+1.5u; rt0x260=r-plki.u; bot0y260=-oo; fi;
x254=(.55+qyd)[x250,x260]; y254=.5[y250,y260];
x255=.84[x250,x260]; y255=.8[y250,y260];
new dirml,dirmr; dirml=.37+qye; dirmr=.15+qyf;
 
call arcpoint(250,254,252,1,0,dirml(x260-x250),y260-y250,.55,.3);
call arcpoint(254,260,258,dirml(x260-x250),y260-y250,1,0,.6,.5);
call arcpoint(250,255,251,1,0,dirmr(x260-x250),y260-y250,.5,.5);
call arcpoint(255,260,259,dirmr(x260-x250),y260-y250,1,0,.5,.4);
 
call arcpoint(250,251,221,1,0,x255-x250,y255-y250,.4,.6);
call arcpoint(250,252,222,1,0,x254-x250,y254-y250,.4,.5);
call arcpoint(251,255,225,x255-x250,y255-y250,dirmr(x260-x250),y260-y250,.5,.5);
call arcpoint(252,254,224,x254-x250,y254-y250,dirml(x260-x250),y260-y250,.6,.3);
 
if ssflag=0:
w0 ddraw 250{1,0}..222{x252-x250,y252-y250}..	% leg
          252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
          254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
          260{1,0},
         250{1,0}..221{x251-x250,y251-y250}..
          251{x255-x250,y255-y250}..225{x255-x251,y255-y251}..
          255{dirmr(x260-x250),y260-y250}..259{x260-x255,y260-y255}..
          260{1,0};
else:
x270=x260; bot0y270=-oo;
w0 draw  250{1,0}..222{x252-x250,y252-y250}..	% leg
          252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
          254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
          260..270{1,0};
fi;
cpen;
w0 draw 3..250;					% connection to stem
if ssflag=0:
rt0x269=round(r-plki.u); y269=.25y250;
x265=.7[x260,x269]; y265=.3[y260,y269];
w0 draw 260{1,0}..265..269{0,1};		% foot on leg
fi.
"Cyrillic letter l";
call charbegin(`l,plli+.4pwiii/pu+llwidth+.5pwi/pu+pvbli,px,0,px.slant);
hpen; rt1x1=round(r-pvbli.u); x2=x1; bot0y1=0; top0y2=m; y3=y2; x4=x3;
cpen;
if ssflag=0: x6=(plli+1.5).u; x3=good0(x6+1.75u); y4=y3-s; 
new w99; w99=.8w3;
lft99x8=lft0x7=round(plli.u); y8=y7=.12m;
else: x7=plli.u; y7=y6; x7=x6-.75u; x3=good0(x6+.75u); y4=y3; fi;
bot0y6=-oo;
hpen;
w1 draw 1..2;                                    % vertical stroke
w0 draw 2..3;                                    % upper bar
if lcs0: call `a serif(1,1,2,lcs);             % serifs
           call `b serif(1,1,2,-lcs);
           call `c serif(2,1,1,lcs);
           call `d serif(2,1,1,-lcs);
           call `e dserif(3,0,4,lcs);
           call `f dserif(3,0,4,-lcs);
fi;
cpen;
if ssflag=0:
w0 draw 4{0,-1}..6{-1,0}..7{0,1};
w99 draw 8;                                       % bulb
else:
w0 draw 4{0,-1}..6{-1,0}..7;
fi.
"Cyrillic letter m";
call charbegin(`m,2.pvbli+.5(pw+pwi)/pu+lmwidth,px,0,px.slant);
if fudge1: new w0,w1;	% lines will be thinner in fudged styles
	w0=round(fudge.pixels.pw+blacker); w1=round(fudge.pixels.pwi+blacker);
fi;
hpen; lft0x1=round(pvbli.u); x1=x2; top0y1=m; bot0y2=0;
new w99; w99=round .8[w0,w1];
rt99x3=round(r-pvbli.u); x3=x4; top99y3=m; bot99y4=0;
lft99x5=lft0x1+del; lft0x6=lft99x3-del; y1=y5; y6=y3;
x7-x5=x6-x8; lft99x7=lft0x8; bot4y7=0; y8=y7;
w0 draw 5..1..1..2;                            % left stem
w99 draw 5..7;                                 % left diagonal
rpen#; w1 draw 8..6;                           % erase excess at lower right
hpen; w0 draw 8..6..6..3;                      % right diagonal
w1 draw 3..4;                                  % right stem
if ucs0: call `a dserif(2,0,1,-lcs);
	call `b dserif(2,0,1,lcs);             % lower left serif
	call `c serif(5,4,7,-lcs-del/u);       % upper left serif
	call `d serif(3,99,4,lcs);             % upper right serif
	call `e serif(4,99,3,-lcs);
	call `f serif(4,99,3,lcs);             % lower right serif
fi;
if fudge1: new w0,w1;	% restore normal sizes in fudged styles
	w0=round(pixels.pw+blacker); w1=round(pixels.pwi+blacker);
fi.
"Cyrillic letter n";
call charbegin(`n,2.pvbli+pwi/pu+pvbls,px,0,px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1;
rt1x3=round(r-pvbli.u); x4=x3;
top1y1=m; y1=y3;
bot1y2=0; y2=y4;
w1 draw 1..2;					% left stem
w1 draw 3..4;					% right stem
if lcs0: call `a serif(1,1,2,-lcs);
		call `b serif(1,1,2,lcs);	% upper left serif
	call `c serif(2,1,1,-lcs);
		call `d serif(2,1,1,lcs);	% lower left serif
	call `e serif(3,1,4,-lcs);
		call `f serif(3,1,4,lcs);	% upper right serif
	call `g	serif(4,1,3,-lcs);
		call `h serif(4,1,3,lcs);	% lower right serif
fi;
x5=x1; x6=x3; y5=y6; y5=(px/phh).ub;
w0 draw 5..6.					% bar
"Cyrillic letter o";
call charbegin(`o,2.poli+pwii/pu+lowidth,px,0,.5px.slant);
hpen;
if fixwidth0: new save; save=sqrttwo;
	new sqrttwo; sqrttwo=sqrt save;		 % super-superellipse
	lft2x2=round 1.5u;
else: lft2x2=round(poli.u);
fi;
x1=r-x1;					% axis of left-right symmetry
top0y1=m+oo;
bot0y2=-oo; y3=y2; x3=r-x2;
%call `a darc(1,2,w5);				% left part of bowl
%call `b darc(1,3,w5);				% right part of bowl
lft0x112=lft2x2; good0 x112=x12;
rt0x122=rt2x2; good0 x122=x22; y12=y22=.5[y1,y2];
lft0x113=lft2x3; good0 x113=x13;
rt0x123=rt2x3; good0x123=x23; y13=y23=y12;
x5=x1; bot0y5=-o;
call lune(1,5,22,12,.42rdns,.42rdns,.42rdns,.42rdns);
call lune(1,5,13,23,.42rdns,.42rdns,.42rdns,.42rdns);
 
if fixwidth0: new sqrttwo; sqrttwo=save;
fi.
"Cyrillic letter p";
call charbegin(`p,2.pvbli+pwi/pu+pvbls,px,0,px.slant);
hpen; lft1x1=round(pvbli.u); x2=x1;
rt1x3=round(r-pvbli.u); x4=x3;
top1y1=m; y1=y3;
bot1y2=0; y2=y4;
w1 draw 1..2;					% left stem
w1 draw 3..4;					% right stem
if lcs0: call `a serif(1,1,2,-lcs);
		call `b serif(1,1,2,.5lcs);	% upper left serif
	call `c serif(2,1,1,-lcs);
		call `d serif(2,1,1,lcs);	% lower left serif
	call `e serif(3,1,4,-.5lcs);
		call `f serif(3,1,4,lcs);	% upper right serif
	call `g	serif(4,1,3,-lcs);
		call `h serif(4,1,3,lcs);	% lower right serif
fi;
w0 draw 1..3.					% bar
"Cyrillic letter ch";
call charbegin(`q,2.pvbli+pwi/pu+pvbls-.25,px,0,px.slant);
hpen; rt1x1=round(r-pvbli.u); x2=x1; bot1y1=0; top1y2=m;
y4=y2; lft1x4=round(pvbli.u);
w1 draw 1..2;					%right vertical stem
x3=x4; lft0x6=lft1x1; x5=.5[x3,x6];
new vfr; vfr=.9px/phh;
top1y2-bot1y5=vfr.(m+oo); top1y4-y3=vfr.(1/3[e,m]); top1y2-y6=vfr.(.25[e,m]);
new stwo; stwo=1.37; x7=1/stwo[x5,x3]; y7=1/stwo[y3,y5];
rt0x31=rt1x3; lft0x32=lft1x3; y31=y32=y3;
x71=1/stwo[x5,x31]; x72=1/stwo[x5,x32];
y71=1/stwo[y31,y5]; y72=1/stwo[y32,y5];
w1 draw 4..3;					%left vertical
w0 draw 5{1,0}..6{0,1};				%hump
   ddraw 31{0,-1}..71{x5-x31,y5-y31}..5{1,0},
         32{0,-1}..72{x5-x32,y5-y32}..5{1,0};
if lcs>0: call `a serif(2,4,1,lcs);		%top rt. rt. serif
	  call `b serif(1,4,2,lcs);		%bot rt. rt. serif
	  call `c serif(2,4,1,-.5lcs);		%top inside rt. serif
	  call `d serif(1,4,2,-lcs);		%bot left serif
	  call `e serif(4,4,3,.5lcs);		%top inside lft serif
	  call `f serif(4,4,3,-lcs);		%top lft lft serif
fi.
"Cyrillic letter r";
call charbegin(`r,pvbli+.5pwi/pu+(lowidth-.75)+.5pwii/pu+poli,px,pd,.5px.slant);
hpen; lft1x1=lft1x2=lft1x3=round(pvbli.u); x4=x5=.55[x1,x6];
rt2x6=round(r-poli.u);
top1y1=m+ssdoo; bot1y2=-d; top0y4=m+oo; bot0y5=-oo;
y3=.5[y4,y5]; y6=y5;
w1 draw 1..2;				% stem
w0 draw 5{-1,0}..3{0,1}..4{1,0};	% left part of bowl
call `a darc(4,6,w2);			% right part of bowl
if lcs0: call `b sserif(1,1,2,-lcs);	% upper serif
	call `c serif(2,1,1,-lcs);
	call `d serif(2,1,1,lcs);	% lower serif
fi.
"Cyrillic letter s";
call charbegin(`s,poli+.5pwii/pu+lswidth+.5pwiii/pu+plsi,px,0,px.slant-pu);
cpen; rt3x1=round(r-plsi.u);
if top3(top3top6e+2)>.9[e,m]: top3y1=.9[e,m];
else: y1=top3top6e+2;
fi;
if ssflag=0: w3 draw 1;	fi;		% bulb
hpen; rt0x2=rt3x1; y2=y1; x3=x5=.6[x4,x1]; top0y3=m+oo;
lft2x4=round(poli.u); y4=y5; bot0y5=-oo;
call `a darc(3,4,w2);			% stroke
if w0=w1: x6=x2; x7-x5=x5-x4; y7=.5[y3,y5];
	new aa; x6=aa[x5,x7]; y6=(sqrt(1-aa.aa))[y7,y5];
else: lft0x6=x2; y6=.45e; x7=x6; y7=e;
fi;
if ssflag=0: w0 draw 2{0,1}..3{-1,0};		% shoulder
else: x12=x6; y3-y12=y6-y5;
x8=x7; y12-y8=y7-y6; w0 draw 3{1,0}..12(..8);
fi;
w0 draw 5{1,0}..6(..7);			% point
if ptsize>18:
  if mode=2: call snip(pa);
  fi;
fi.
"Cyrillic letter t";
call charbegin(`t,2.plali+pw/pu+2.(plal-1),px,0,px.slant);
hpen; x1=good1 .5r; x2=x1; top1y1=m; bot1y2=0;
w1 draw 1..2;				% stem
if lcs0: call `a serif(1,1,2,-.5lcs);
	call `b serif(1,1,2,.5lcs);	% upper bracketing
	call `c serif(2,1,1,-1.25lcs);
	call `d serif(2,1,1,1.25lcs);	% lower serif
fi;
lft0x5=round(plai.u); x6=good0(x5-.5u); y3=y1; y4=y3-sas; 
x5+x3=x6+x4=x1+x1; y5=y1; y6=y4;	% left-right symmetry
call `e arm(1,3,4,sas);			% upper right arm and serif
call `f arm(1,5,6,sas).			% upper left arm and serif
"Cyrillic letter u";
call charbegin(`u,pllui+.5pwi/pu+luwidth+.5pw/pu+prlui,px,pd,px.slant);
hpen; lft1x1=round(pllui.u); rt0x4=round(r-prlui.u);
x2-x1=x4-x3; lft0x3=lft1x2+.5del;
top1y1=m; y4=y1; bot1y2=-o;y3=y2;
w1 draw 1..2; w0 draw 2..3;			% left diagonal stroke
rpen#; w1 draw 3..4;				% erase excess at lower right
 
if ssflag=0: cpen; lft3x8=lft0x7=round((pllui-1).u); bot3y8=-.9d; y7=y8;
hpen; x6=x8+u; bot0y5=-.5d;
else: x6=x5; x7=x6-u; hpen; bot0y7=bot0y6=bot0y5;
fi;
bot0y6=-d-oo;
new aa; x5=aa[x3,x4]; y5=aa[y3,y4];
cpen;
if ssflag=0:
w0 draw 4..3{x3-x4,y3-y4}..6{-1,0}..7{0,1};	% right diagonal and tail
w3 draw 8;					% bulb
else:
w0 draw 4..3{x3-x4,y3-y4}..6{-1,0}..7;
fi;
if lcs0: call `a serif(1,1,2,-lcs);
	call `b serif(1,1,2,lcs);		% left serif
	call `c dserif(4,0,3,-lcs);
	call `d dserif(4,0,3,lcs);		% right serif
fi.
"Cyrillic letter v";
call charbegin(`v,pvbli+.5pwi/pu+phbls+.5pwii/pu+phbli,px,0,.75px.slant);
hpen; lft1x1=lft1x2=round(pvbli.u); top1y1=m; bot1y2=0;
w1 draw1..2;					% stem
if lcs0:
	call `a serif(1,1,2,-lcs);
	call `b serif(1,1,2,.5lcs);		% upper serif
	call `c serif(2,1,1,-lcs);
	call `d serif(2,1,1,.5lcs);		% lower serif
fi;
x3=x1; y3=.52m;
rt1x25=round(r-(phbli+.5).u);  y25=.5[y1,y3];
lft0x26=lft1x25; rt0x27=rt1x25; y26=y27=1[y3,y25];
x29=.5[x1,x25]; top0y29=m;
x28=.5[x3,x25]; y28=y3;
call `e lune(29,28,26,27,.48rdns,.48rdns,.48rdns,.48rdns); % upper bowl
hpen; w0 draw 29..1;				% connection to stem
         draw 28..3;
rt2x41=round(r-phbli.u); y41=.55[y2,y3];
lft0x42=lft2x41; rt0x43=rt2x41; y42=y43=.55[y2,y3];
x45=.5[x2,x41]; bot0y45=0;
call `f lune(28,45,42,43,.48rdns,.48rdns,.48rdns,.48rdns); % lower bowl
hpen; w0 draw 45..2.				% connection to stem
"Cyrillic letter shch";
call charbegin(`w,pvbli+.5pwi/pu+2.pvblshs+plstla+.5pw/pu+plali,px,psas,px.slant);
hpen; lft1x1=lft1x2=round(pvbli.u); x3=good1(x1+pvblshs.u)=x4;
x5=x6=good1(r-.5w0-(plali+plstla).u);;
top1y1=m; y1=y3=y5; bot1y2=0; y2=y4=y6=y7;
rt0x7=round(r-plali.u); rt0x8=r; y8=y7-sas;
w1 draw 1..2;					% stems
   draw 3..4;
   draw 5..6;
if lcs  0:
	if 4lcs.u+2w1>x5-x1-2u: new aa; 4aa.u+2w1=x5-x1-2u;
	else: new aa; aa=lcs;
	fi;
	call `a serif(1,1,2,-  lcs);		% upper left serif
	call `b serif(1,1,2,    aa);
	call `c serif(2,1,1,-  lcs);		% lower left serif
	call `d serif(2,1,1, .5lcs);
	call `e serif(3,1,4,-   aa);		% upper middle serif
	call `f serif(3,1,4,    aa);
	call `g serif(4,1,3,-.5lcs);		% lower middle serif
	call `h serif(4,1,3, .5lcs);
	call `i serif(5,1,6,-   aa);		% upper right serif
	call `j serif(5,1,6,   lcs);
	call `k serif(6,1,5,-.5lcs);		% lower right serif
        new tmp; tmp=crisp; new crisp; crisp=0;
        rt0x12=rt1x6;
	call `l serif(6,1,5,(x7-x12)/u);
        new crisp; crisp=tmp;
fi;
w0 draw 2..6;					% bottom bar
call `m carm(4,7,8,sas).
"Cyrillic letter sh";
call charbegin(`x,2.pvbli+pwi/pu+2.pvblshs,px,0,px.slant);
hpen; lft1x1=lft1x2=round(pvbli.u);
x3=good1 .5r; rt1x5=round(r-pvbli.u); x4=x3; x6=x5;
top1y1=m; y1=y3=y5;
bot1y2=0; y2=y4=y6;
w1 draw 1..2;					% stems
   draw 3..4;
   draw 5..6;
if lcs  0:
	if 4lcs.u+2w1>x5-x1-2u: new aa; 4aa.u+2w1=x5-x1-2u;
	else: new aa; aa=lcs;
	fi;
	call `a serif(1,1,2,-  lcs);		% upper left serif
	call `b serif(1,1,2,    aa);
	call `c serif(2,1,1,-  lcs);		% lower left serif
	call `d serif(2,1,1, .5lcs);
	call `e serif(3,1,4,-   aa);		% upper middle serif
	call `f serif(3,1,4,    aa);
	call `g serif(4,1,3,-.5lcs);		% lower middle serif
	call `h serif(4,1,3, .5lcs);
	call `i serif(5,1,6,-   aa);		% upper right serif
	call `j serif(5,1,6,   lcs);
	call `k serif(6,1,5,-.5lcs);		% lower right serif
	call `l serif(6,1,5,   lcs);
fi;
w0 draw 2..6.					% bottom bar
"Cyrillic letter y";
call charbegin(`y,2.pvbli+pwi/pu+phbls+(3.5+qyi),px,0,px.slant);
hpen; lft1x1=lft1x2=round(pvbli.u); rt1x3=rt1x4=round(r-pvbli.u);
top1y1=top1y3=m; bot1y2=bot1y4=0;
w1 draw 1..2;					% stems
   draw 3..4;
if lcs  0:
	call `a serif(1,1,2, -lcs);		% upper left serif
	call `b serif(1,1,2,  lcs);
	call `c serif(2,1,1, -lcs);		% lower left serif
	call `d serif(2,1,1,.5lcs);
	call `e serif(3,1,4, -lcs);		% upper right serif
	call `f serif(3,1,4,  lcs);
	call `g serif(4,1,3, -lcs);		% lower right serif
	call `h serif(4,1,3,  lcs);
fi;
x25=x1; x26=.5[x25,x27];
y25=y26=lb; x28=x26; bot0y28=0;
x27=good1(x1+phbls.u); y27=.5[y25,y2];
lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns);	% bowl
w0 draw 25..26;					% connections to stem
w0 draw 2..28.
"Cyrillic letter z";
call charbegin(`z,plzi+.5pw/pu+lzwidth+.5pwii/pu+phbli,px,0,px.slant);
cpen;
if ssflag=0: lft0x901=round(plzi.u); y901=.08m; x1=.45[x901,x7];
else: lft0x901=round(plzi.u); y901=.15m; x1=.4[x901,x7];
fi;
top0y1=m+oo;
y5=(px/phh).ub; x5=x1;
bot0y9=-oo; x9=x1;
rt1x3=round(r-(phbli+.5).u); y3=.5[y1,y5];
rt0x4=rt1x3; lft0x2=lft1x3; y2=y3=y4;
rt2x7=round(r-phbli.u); y7=.5[y5,y9];
rt0x8=rt2x7; lft0x6=lft2x7; y6=y7=y8;
call exlune(1,5,2,4,.45rdns,.45rdns,.45rdns,.45rdns,0,.3);	% bowls
call exlune(5,9,6,8,.45rdns,.47rdns,.45rdns,.45rdns,.25,0);
if ssflag=0: x15=x5-1.15u; else: x15=x5; fi;
y15=y5;
w0 draw 5..15;						% center line
if ssflag=0:
x903=x901-.1u; y903=y901+(1.5+qyg).w0;
lft0x101=round((plzi+.2).u); y101=.92m;
x103=x101-.1u; y103=y101-(1.5+qyg).w0;
new tailex; tailex=-1.2; new tailmid; tailmid=-.6;
call arcpoint(9,901,902,-1,0,tailex,1,.5,.5);
call arcpoint(9,903,904,-1,0,tailmid,1,.55,.5);
call arcpoint(1,101,102,-1,0,tailex,-1,.5,.5);
call arcpoint(1,103,104,-1,0,tailmid,-1,.55,.5);
w0 ddraw 1{-1,0}..102{x101-x1,y101-y1}..101{tailex,-1},
         1{-1,0}..104{x103-x1,y103-y1}..103{tailmid,-1};
w0 ddraw 9{-1,0}..902{x901-x9,y901-y9}..901{tailex,1},
         9{-1,0}..904{x903-x9,y903-y9}..903{tailmid,1};
else:
lft0x101=round((plzi+.1).u); y101=.85m;
new tail; tail=-1.2;
call arcpoint(1,101,102,-1,0,tail,-1,.5,.5);
call arcpoint(9,901,902,-1,0,tail,1,.5,.5);
w0 draw  1{-1,0}..102{x101-x1,y101-y1}..101{tail,-1};
   draw  9{-1,0}..902{x901-x9,y901-y9}..901{tail,1};
fi.

Zerion Mini Shell 1.0