cmchar "The cyrillic letter es";
beginchar(cyrs,8u#,x_height#,0);
italcorr x_height#*slant-.2u#;
adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
pickup fine.nib; pos2(vair',90); pos4(vair',270);
x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
if serifs: pos1(hair,0); pos0(flare,0);
y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
pos5(hair,0); rt x5r=hround(w-.5u);
y5=max(good.y(.5bar_height-.9),y4l+vair');
(x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
& pulled_super_arc.e(3,4)(.5superpull)
..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
else: pos1(4/7[vair',flare],80);
rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
filldraw stroke term.e(2,1,right,.8,4); % upper terminal
pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
if angle direction 1 of p.e>75:
p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
& pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
penlabels(0,1,2,3,4,5); endchar;
cmchar "The cyrillic letter te";
beginchar(cyrt,10u#,x_height#,0);
italcorr x_height#*slant-beak_jut#-.25u#;
adjust_fit(0,0);
h:=vround(h-2stem_corr);
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
if odd(w-stem): change_width; fi
lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % stem
pickup crisp.nib; pos3(slab,90); pos4(hair,0);
top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.6beak)-eps;
arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
pos5(hair,180); x5=w-x4; y5=y4;
arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
if serifs: dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
penlabels(1,2,3,4,5); endchar;
cmchar "The cyrillic letter u";
beginchar(cyru,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
italcorr x_height#*slant+.25u#;
adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
left_stem=fudged.stem-stem_corr;
right_stem=fudged.hair if hefty:-2stem_corr fi;
bot_stem=fudged.hair if hefty:-8stem_corr fi;
bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
outer_jut=.75jut;
x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
alpha3=(y1++(x2l-x1l))/y1;
penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
if y0>notch_cut: y0:=notch_cut;
fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
--z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
...{down}z0+.5left--cycle; % left and right diagonals
else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
--diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
numeric inner_jut; pickup tiny.nib;
prime_points_inside(1,2); prime_points_inside(4,3);
if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
fill stroke z3e---z5e...{left}z6e; % arc
pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
pos7(2/3[bot_vair,flare],-85);
lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
cmchar "The cyrillic letter ef";
beginchar(cyrf,12u#,x_height#+desc_depth#,desc_depth#);
italcorr .75x_height#*slant-.5u#;
adjust_fit(serif_fit#,0);
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
if odd(w-stem): change_width; fi
top y1=h if serifs: +min(oo,serif_drop) fi;
x1=x2=.5w; bot y2=-d;
penpos3(cap_band,180);penpos3'(cap_band,0);
penpos4(cap_band,90); penpos5(curve,0);
penpos6(.5[vair,cap_band],-90);
penpos7(.5[vair,cap_band],180); penpos7'(.5[vair,cap_band],0);
penpos8(cap_band,90); penpos9(curve,180);
penpos10(.5[vair,cap_band],270);
x3l=x7l=rt x1r; x3'l=x7'l=lft x1l;
y4r=y8r=x_height+oo; y5=y9=.5[y4l,y6l];
x4r=x6r=.5[x1,x5]; x8r=x10r=.5[x9,x1];
x5r=w-x9r=w-.5u;
y7=y7'=.25x_height; y3=y3'=x_height-y7; y6r=y10r=-oo;
filldraw stroke z1e--z2e; % stem
fill stroke z3e{up}..pulled_arc.e(4,5) & pulled_arc.e(5,6)..{up}z7e;
fill stroke z3'e{up}..pulled_arc.e(8,9) & pulled_arc.e(9,10)..{up}z7'e; % lobe
if serifs:
sloped_serif.l(1,2,a,1/3,jut,.1h); % upper serif
dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
penlabels(0,1,2,3,3',4,5,6,7,7',8,9,10); endchar;
cmchar "The cyrillic letter xa";
beginchar(cyrh,if serifs:9.5u# else:9u# fi,x_height#,0);
italcorr x_height#*slant-.05u#;
adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
numeric stem[],outer_jut,xjut,alpha[];
stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
y1=y2=h; y3=y4=0;
alpha1=diag_ratio(1,stem1,h,x4r-x1l);
alpha2=diag_ratio(1,stem2,h,x2r-x3l);
penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
x12=x34=x0; y13=y24=y0;
z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
--diag_end(34',4l,.5,1,4r,24')--z24'
--diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
else: fill diag_end(4r,1r,.5,1,1l,4l)
--diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
fill diag_end(2l,3l,.5,1,3r,2r)
--diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
if serifs: numeric inner_jut[]; pickup tiny.nib;
prime_points_inside(1,4); prime_points_inside(2,3);
prime_points_inside(3,2); prime_points_inside(4,1);
if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
dish_serif(2',3,e,2/3,inner_jut1+xjut,
f,1/2,outer_jut+xjut)(dark); % upper right serif
dish_serif(3',2,g,1/2,outer_jut+xjut,
h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
penlabels(0,1,2,3,4,12,13,24,34); endchar;
cmchar "The cyrillic letter tse";
beginchar(cyrc,10u#,x_height#,comma_depth#);
italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
adjust_fit(serif_fit#,serif_fit#);
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
pos3(stem,0); pos4(stem,0);
lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
top y1=top y3=h; bot y2=bot y4=0;
filldraw stroke z1e--z2e; % left stem
filldraw stroke z3e--z4e; % right stem
if serifs: numeric inner_jut;
if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
inner_jut:=.5(x3l-x1r);
nodish_serif(2,1,c,1/3, jut,d,1/3,inner_jut); % lower left serif
nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
pickup crisp.nib; pos5(slab,90); pos6(hair,0);
x5=.5[x2,x4]; bot y5l=0;
rt x6r=tiny.rt x4r+jut; y6=good.y(y5l-.5beak)-eps;
arm(5,6,m,1.25beak_darkness,0); % beak
else: pos2'(slab,90); pos4'(slab,90);
pos5(slab,0); pos6(slab,0);
lft x2'=lft x2l; rt x4'=rt x5r=rt x6r=w-.5u;
bot y2'l=bot y4'l=0; y5=y4; bot y6=-.75d;
filldraw stroke z2'e--z4'e; % lower bar
filldraw stroke z5e--z6e; % right beak
fi
penlabels(1,2,2',3,4,4',5,6); endchar;
cmchar "The cyrillic letter che";
beginchar(cyrch,10u#,x_height#,0);
italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
pos3(stem,0); pos4(stem,0);
numeric light_vair; light_vair=vair-fine;
lft x1l=hround(2.5u-.5stem); x1=x2; x3l=w-x1r; x3r=x4r;
top y1=h; bot y4=0;
penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.65h;
penpos5(light_vair,-90); penpos6(light_vair,0);
y6=.5h; lft x6l=lft x3l; if rt x6r>rt x3r: x6r:=x3r; fi
filldraw stroke z1e--z2e; % left stem
filldraw stroke z3e--z4e; % right stem
pickup fine.nib; bot y5r=y6-vair-.05h; x5=.5w;
filldraw stroke {{interim superness:=hein_super;
pulled_super_arc.e(2',5)(.01superpull)}}
& z5e{right}...z6e; % arc
if serifs: numeric inner_jut;
if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
dish_serif(4,3,g,1/3,jut,h,1/3,jut); fi % lower right serif
penlabels(1,2,3,4,5,6); endchar;
cmchar "The cyrillic letter sha";
beginchar(cyrsh,15u#,x_height#,0);
italcorr x_height#*slant-.25u#;
adjust_fit(serif_fit#,serif_fit#);
pickup tiny.nib; pos1(stem',0); pos2(stem',0);
pos3(stem',0); pos4(stem',0);
pos5(stem',0); pos6(stem',0);
if odd(w-stem'): change_width; fi
lft x1l=lft x2l=hround(2.5u-.5stem);
x3=x4=.5w; x5=x6=w-x1;
top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
z3=.5[z1,z5]; z4=.5[z2,z6];
filldraw stroke z1e--z2e; % right stem
filldraw stroke z3e--z4e; % middle stem
filldraw stroke z5e--z6e; % left stem
if serifs: numeric inner_jut;
if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
dish_serif(5,6,e,1/3,inner_jut,f,1/3, jut); % upper right serif
inner_jut:=.5(x3l-x1r);
nodish_serif(2,1,g,1/3, jut,h,1/3, inner_jut); % lower left serif
nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
nodish_serif(6,5,k,1/3,inner_jut, l,1/3,jut); % lower right serif
else: pos2'(slab,90); pos6'(slab,90);
lft x2'=lft x1l; rt x6'=rt x6r; bot y2'l=bot y6'l=0;
filldraw stroke z2'e--z6'e; % lower bar
fi
penlabels(1,2,2',3,4,5,6,6'); endchar;
cmchar "The cyrillic letter shcha";
beginchar(cyrshch,15u#,x_height#,comma_depth#);
italcorr x_height#*slant-.25u#;
adjust_fit(serif_fit#,serif_fit#);
pickup tiny.nib; pos1(stem',0); pos2(stem',0);
pos3(stem',0); pos4(stem',0);
pos5(stem',0); pos6(stem',0);
if odd(w-stem'): change_width; fi
lft x1l=lft x2l=hround (2.25u-.5stem);
x3=x4=.5w; x5=x6=w-x1;
top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
z3=.5[z1,z5]; z4=.5[z2,z6];
filldraw stroke z1e--z2e; % right stem
filldraw stroke z3e--z4e; % middle stem
filldraw stroke z5e--z6e; % left stem
if serifs:
numeric inner_jut;
if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
dish_serif(5,6,e,1/3,inner_jut,f,1/3, jut); % upper right serif
inner_jut:=.5(x3l-x1r);
nodish_serif(2,1,g,1/3, jut,h,1/3, inner_jut); % lower left serif
nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
nodish_serif(6,5,k,1/3,inner_jut, l,1/3,jut); % lower right serif
pickup crisp.nib; pos7(slab,90); pos8(hair,0);
x7=.5[x4,x6]; bot y7l=0;
rt x8r=tiny.rt x6r+jut; y8=good.y(y7l-.5beak)-eps;
arm(7,8,m,1.25beak_darkness,0); % beak
else: pos2'(slab,90); pos6'(slab,90);
pos7(slab,0); pos8(slab,0);
lft x2'=lft x1l; rt x6'=rt x7r=rt x8r=w-.5u;
bot y2'l=bot y6'l=0; y7=y6; bot y8=-.75d;
filldraw stroke z2'e--z6'e; % lower bar
filldraw stroke z7e--z8e; % right beak
fi
penlabels(1,2,2',3,4,5,6,6',7,8); endchar;
cmchar "The cyrillic letter hard_sign";
beginchar(cyrhrdsn,10.5u#,x_height#,0);
italcorr .75x_height#*slant-.5u#;
adjust_fit(serif_fit#,0);
numeric left_stem,right_curve,middle_weight;
left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
lft x1l=lft x2l=hround(4u-.5left_stem); top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % stem
penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
penpos8(cap_band,-90); penpos9(cap_band,-90);
z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
x6l:=x6l-.5u; fi
fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
pickup crisp.nib; pos3(slab,90); pos4(hair,180);
top y3r=h; x3=x1; lft x4r=hround(.5u); y4=good.y(y3l-.6beak)-eps;
arm(3,4,e,beak_darkness,-.7beak_jut); % upper arm and beak
if serifs: nodish_serif(1,2,a,0,jut,b,1/3,jut); % upper serif
nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
penlabels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "The cyrillic letter yeru";
beginchar(cyrery,13u#,x_height#,0);
italcorr .75x_height#*slant-.5u#;
adjust_fit(serif_fit#,0);
numeric left_stem,right_curve,middle_weight;
left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % left stem
pos3(stem,0); pos4(stem,0); x3=x4=w-x1; top y3=h; bot y4=0;
penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
penpos8(cap_band,-90); penpos9(cap_band,-90);
z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
x6=x8; x5=x1; x6ltop
:=x6-.25u; x8l:=x8l-.5u;
x7r=if serifs: tiny.lft x3l-jut; else: 8.5u; fi
if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-4.5u];
else: right_curve=curve-3stem_corr; x6=.5[x1,w-5.2u];
x6l:=x6l-.5u; fi
fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
filldraw stroke z3e--z4e; % right stem
if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper left serif
nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); % lower left serif
dish_serif(3,4,e,1/3,1.05jut,f,1/3,1.05jut); % upper right serif
dish_serif(4,3,g,1/3,1.05jut,h,1/3,1.05jut); fi % lower right serif
penlabels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "The cyrillic letter soft_sign";
beginchar(cyrsftsn,9u#,x_height#,0);
italcorr .75x_height#*slant-.5u#;
adjust_fit(serif_fit#,0);
numeric left_stem,right_curve,middle_weight;
left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % stem
penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
penpos8(cap_band,-90); penpos9(cap_band,-90);
z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
x6l:=x6l-.5u; fi
fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
penlabels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "The cyrillic letter e";
beginchar(cyrerev,8u#,x_height#,0);
italcorr x_height#*slant-.2u#;
adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
pickup fine.nib;
pos2(cap_band,90); pos4(vair',270); pos3(curve,0);
x2=x4=.5(w-u); top y2r=h+oo; bot y4r=-oo;
rt x3r=w-hround min(.6u,1.35u-.5curve); y3=.5h;
if serifs: pos1(hair,180);
lft x1r=u; bot y1=min(vround .7h,bot y2l-eps);
pos5(hair,180); lft x5r=hround(.5u);
y5=max(good.y(.5bar_height-.9),y4l+vair');
(x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
filldraw stroke z1e{up}
..pulled_super_arc.e(2,3)(superpull)%(.7superpull)
& pulled_super_arc.e(3,4)(superpull)%(.5superpull)
..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+o;
x1'-x1r=1.5curve-fine; y1'=y1;
path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
else: pos1(4/7[vair',flare],110);
lft x1r=hround(.6u);
top y1r=vround .82[bar_height,top y2r];
filldraw stroke term.e(2,1,left,.8,4); % upper terminal
pos5(.6[vair',flare],265); lft x5r=hround(.5u);
y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
if angle direction 1 of p.e<105:
p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi endfor
filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
& pulled_super_arc.e(3,4)(.7superpull) & p.e; fi % arc and lower terminal
penpos7(bar,90); penpos8(bar,90);
x7=lft x3l; x8=.5w-1.5u;
y7=y8=.5h;
fill stroke z7e--z8e; % bar
penlabels(0,1,2,3,4,5); endchar;
cmchar "The cyrillic letter yu";
beginchar(cyryu,13.5u#,x_height#,0);
italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
adjust_fit(serif_fit#,if monospace: .5u# else: 0 fi);
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % left stem
penpos5(vair,90); penpos7(vair',-90);
penpos6(curve,180); penpos8(curve,0);
x5=x7=.5[x6,x8]; y5r=h+oo; y7r=-oo;
x8r=hround(w-.5u); x6r=hround(w-8.5u);
y6=y8=.5h-vair_corr; y6l:=y8l:=.52h;
penstroke pulled_arc.e(5,6) & pulled_arc.e(6,7)
& pulled_arc.e(7,8) & pulled_arc.e(8,5) & cycle; % bowl
penpos3(bar,90); penpos4(bar,90); x3=x1; x4=x6; y3=y4=.52h;
fill stroke z3e--z4e; % bar
if serifs: numeric inner_jut; inner_jut=jut;
dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower left serif
penlabels(1,2,3,4,5,6,7,8); endchar;
cmchar "The cyrillic letter ya";
beginchar(cyrya,8u#+.5max(2u#,curve#),x_height#,0);
italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
adjust_fit(0,serif_fit#);
pickup tiny.nib; pos1(stem',0); pos2(stem',0);
rt x1r=rt x2r=w-hround(2.5u-.5stem'); top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % stem
penpos3(cap_band,90); penpos4(cap_band,90);
penpos5(curve if hefty:-3stem_corr fi,180);
penpos6(vair,-90); penpos7(vair,-90);
z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; x7=x2; y7=.5h; x4=x6;
if serifs: x4=.5w+.5u; x5r=hround(1.5u);
else: x4=.5w-.5u; x5r=hround(.75u); fi
x4l:=x6l:=x4+.125curve;
fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
pos6'(curve,0); pos8(curve,0); x6'r=x6l; y6'=y6;
tiny.lft x8l=.5u+.5jut; bot y8=0;
filldraw stroke z6'e--z8e; % diagonal stem
if serifs: numeric inner_jut;
if rt x8r+u+1<=lft x2l-jut: inner_jut=jut;
else: lft x2l-u-1=rt x8r+inner_jut; fi
nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
dish_serif(2,1,c,1/3,inner_jut,d,1/3,jut); % lower serif
serif(8,6',e,1/3,-.5jut); fi % lower diagonal serif
penlabels(1,2,3,4,5,6,7,8); endchar;