% unicode encoded characters of fetamont

%------accents-------

% acute
ffmchar("00B4",6,x_ht#+acc_ht#,0);
lft x1=.2w+noise; 
rt x2=w+noise; 
bot y1=.2[x_ht,h]+noise;
top y2=h+o+noise;
draw z1--z2;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2); 
endchar;

% grave
ffmchar("0060",6,x_ht#+acc_ht#,0);
lft x1=noise; 
rt x2=.8w+noise; 
top y1=h+o+noise;
bot y2=.2[x_ht,h]+noise;
draw z1--z2;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2); 
endchar;

% dieresis
ffmchar("00A8",8,x_ht#+acc_ht#,0);
x1=x2=.5w-max(1.8u,(1+dotincr)*.7px)+noise; 
x3=x4=.5w+max(1.8u,(1+dotincr)*.7px)+noise; 
bot y1=.3[x_ht,h]+noise;
y2=y1+dotincr*py;
bot y3=.3[x_ht,h]+noise;
y4=y3+dotincr*py;
draw dotcircle(z1,z2);
draw dotcircle(z3,z4);
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4); 
endchar;

% circumflex
ffmchar("02C6",7,x_ht#+acc_ht#,0);
lft x1=noise; 
x2=.5w+noise;
rt x3=w+noise; 
bot y1=.2[x_ht,h]+noise;
bot y3=.2[x_ht,h]+noise;
top y2=h+o+noise;
draw z1--z2--z3;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3); 
endchar;

%tilde
ffmchar("02DC",9,x_ht#+acc_ht#,0);
lft x1=eps+noise; 
x2=.3w+noise;
x4=.7w+noise;
x3=.5w+noise;
rt x5=w-eps+noise; 
bot y1=.2[x_ht,h]+noise;
bot y4=.2[x_ht,h]+noise;
top y2=h+noise;
top y5=h+noise;
y3=.6[x_ht,h]+noise;
if (1.3px>(top y2-bot y1)) or (4.5px>w): 
 draw z1{randup}..tension 2..z2{randrt}
  ..tension 2..z4{randrt}
  ..tension 2..z5{randup};
else:
 draw z1{randup}...z2{randrt}...z3
  ...z4{randrt}...z5{randup};
fi
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4,5); 
endchar;

% hungarumlaut
ffmchar("02DD",11,x_ht#+acc_ht#,0);
x2=.2w+noise; 
x3=.8w+noise; 
x1=.4w+noise; 
x4=.6w+noise; 
top y1=h+o+noise;
top y3=h+o+noise;
bot y2=.2[x_ht,h]+noise;
bot y4=.2[x_ht,h]+noise;
draw z1--z2;
draw z3--z4;
charanchortops_[charepscode]=(.4w,x_ht);
labels(1,2,3,4); 
endchar;

% ring
ffmchar("02DA",5,x_ht#+acc_ht#,0);
lft x3=-o+noise; 
rt x1=w+o+noise; 
x2=.5w+noise;
x4=.5w+noise;
top y4=x_ht+o; %no noise because of Aring
top y2=h+o+noise;
y1=.5[y2,y4]+noise;
y3=.5[y2,y4]+noise;
draw full(z1,randup,z2,-randrt,z3,-randup,z4,randrt);
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4); 
endchar;

% caron
ffmchar("02C7",7,x_ht#+acc_ht#,0);
lft x1=noise; 
x2=.5w+noise;
rt x3=w+noise; 
top y1=h+o+noise;
top y3=h+o+noise;
bot y2=.2[x_ht,h]+noise;
draw z1--z2--z3;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3); 
endchar;

% breve
ffmchar("02D8",7,x_ht#+acc_ht#,0);
lft x1=noise; 
x2=.5w+noise;
rt x3=w+noise; 
top y1=h+o+noise;
top y3=h+o+noise;
bot y2=.2[x_ht,h]+noise;
draw half(z1,-randup,z2,randrt,z3,randup);
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3); 
endchar;

% macron
ffmchar("00AF",6,x_ht#+acc_ht#,0);
lft x1=noise; 
rt x2=w+noise; 
y1=.5[x_ht,h]+noise;
y2=.5[x_ht,h]+noise;
draw z1--z2;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2); 
endchar;

% dotaccent
ffmchar("02D9",4,x_ht#+acc_ht#,0);
x1=x2=.5w+noise; 
bot y1=.5[x_ht,h]+noise;
y2=y1+dotincr*py;
draw dotcircle(z1,z2);
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2); 
endchar;

% combining dot below
ffmchar("0323",4,x_ht#,acc_depth#);
x1=x2=.5w+noise; 
bot y1=noise-d;
y2=y1+dotincr*py;
draw dotcircle(z1,z2);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2); 
endchar;

% combining comma below (commaaccent)
ffmchar("0326",4,x_ht#,acc_depth#);
lft x1=.2w+noise;
rt x2=.8w+noise;
bot y1=noise-d;
top y2=noise-.2d;
draw z1--z2; 
charanchorbots_[charepscode]=(x2,0);
labels(1,2); 
endchar;

% cedilla
ffmchar("00B8",4,x_ht#,acc_depth#);
x1=.5w; %no noise!
lft x2=.2w+.5noise;
rt x3=w+o+.5noise;
x4=x2;
lft x5=0;
bot y1=0; %no noise!
y2=.4[y1,y4];
y3=.7[y1,y4];
bot y4=noise-d;
z5=z4+whatever*randrt;
draw z5--z4
 & half(z4,z4-z5,z3,randup,z2,-randrt)
 & z2--z1;
charanchorcedillas_[charepscode]=z1;
labels(1,2,3,4,5); 
endchar;

% ogonek
ffmchar("02DB",4,x_ht#,acc_depth#);
x1=.6w; %no noise!
lft x2=-o+.5noise;
rt x4=w+.5noise;
x3=x4-.5u;
bot y1=0; %no noise!
y2=.7[y1,y4];
bot y3=noise-d;
z4=z3+whatever*randrt;
pair randir;
randir:=-randup;
draw z1..tension infinity and 1..z2{randir}
 & arc(z2,randir,z3,randrt)
 & z3--z4;
charanchorcedillas_[charepscode]=z1;
labels(1,2,3,4,5); 
endchar;

% tonos
ffmchar("0384",3,x_ht#+acc_gr#,0);
lft x1=noise; 
rt x2=w+noise; 
bot y1=.2[x_ht,h]+noise;
top y2=h+o+noise;
draw z1--z2;
charanchortops_[charepscode]=(.4w,x_ht);
labels(1,2); 
endchar;

% low acute accent (low tonos)
ffmchar("02CF",3,x_ht#,comma_depth#);
lft x1=noise; 
rt x2=w+noise; 
bot y1=noise-d-o;
top y2=-.2d+noise;
draw z1--z2;
charanchortops_[charepscode]=(.4w,0);
labels(1,2); 
endchar;

% varia
ffmchar("1FEF",3,x_ht#+acc_gr#,0);
lft x1=noise; 
rt x2=w+noise; 
top y1=h+o+noise;
bot y2=.2[x_ht,h]+noise;
draw z1--z2;
charanchortops_[charepscode]=(.6w,x_ht);
labels(1,2); 
endchar;

% low grave accent (low varia)
ffmchar("02CE",3,x_ht#,comma_depth#);
lft x1=noise; 
rt x2=w+noise; 
top y1=-.2d+noise;
bot y2=noise-d-o;
draw z1--z2;
charanchortops_[charepscode]=(.6w,0);
labels(1,2); 
endchar;

% dasia
ffmchar("1FFE",2.5,x_ht#+acc_gr#,0);
rt x1=w+noise; 
lft x2=noise;
rt x3=w+noise;
x0=1.8[x1,x2];
top y1=h+o+noise;
bot y3=.2[x_ht,h]+noise;
y2=y0=.5[y1,y3];
draw z1{z0-z1}...z2{down}...z3{z3-z0};
charanchortops_[charepscode]=(.5w,x_ht);
labels(0,1,2,3); 
endchar;

% dasia and varia
ffmchar("1FDD",6,x_ht#+acc_gr#,0);
rt x1=.4w+noise; 
lft x2=noise;
rt x3=.4w+noise;
x0=1.8[x1,x2];
top y1=h+o+noise;
bot y3=.2[x_ht,h]+noise;
y2=y0=.5[y1,y3];
draw z1{z0-z1}...z2{down}...z3{z3-z0};
rt x4=w+noise; 
lft x5=.5w+noise; 
top y5=h+o+noise;
bot y4=.2[x_ht,h]+noise;
draw z4--z5;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4); 
endchar;

% dasia and oxia
ffmchar("1FDE",6,x_ht#+acc_gr#,0);
rt x1=.4w+noise; 
lft x2=noise;
rt x3=.4w+noise;
x0=1.8[x1,x2];
top y1=h+o+noise;
bot y3=.2[x_ht,h]+noise;
y2=y0=.5[y1,y3];
draw z1{z0-z1}...z2{down}...z3{z3-z0};
rt x4=w+noise; 
lft x5=.5w+noise; 
top y4=h+o+noise;
bot y5=.2[x_ht,h]+noise;
draw z4--z5;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4); 
endchar;

% psili
ffmchar("1FBF",2.5,x_ht#+acc_gr#,0);
lft x1=noise; 
rt x2=w+noise;
lft x3=noise;
x0=1.8[x1,x2];
top y1=h+o+noise;
bot y3=.2[x_ht,h]+noise;
y2=y0=.5[y1,y3];
draw z1{z0-z1}...z2{down}...z3{z3-z0};
charanchortops_[charepscode]=(.5w,x_ht);
labels(0,1,2,3); 
endchar;

% psili and oxia
ffmchar("1FCE",6,x_ht#+acc_gr#,0);
lft x1=noise; 
rt x2=.4w+noise;
lft x3=noise;
x0=1.8[x1,x2];
top y1=h+o+noise;
bot y3=.2[x_ht,h]+noise;
y2=y0=.5[y1,y3];
draw z1{z0-z1}...z2{down}...z3{z3-z0};
rt x4=w+noise; 
lft x5=.5w+noise; 
top y4=h+o+noise;
bot y5=.2[x_ht,h]+noise;
draw z4--z5;
charanchortops_[charepscode]=(.5w,x_ht);
labels(0,1,2,3,4,5); 
endchar;

% psili and varia
ffmchar("1FCD",6,x_ht#+acc_gr#,0);
lft x1=noise; 
rt x2=.4w+noise;
lft x3=noise;
x0=1.8[x1,x2];
top y1=h+o+noise;
bot y3=.2[x_ht,h]+noise;
y2=y0=.5[y1,y3];
draw z1{z0-z1}...z2{down}...z3{z3-z0};
rt x4=w+noise; 
lft x5=.5w+noise; 
top y5=h+o+noise;
bot y4=.2[x_ht,h]+noise;
draw z4--z5;
charanchortops_[charepscode]=(.5w,x_ht);
labels(0,1,2,3,4,5); 
endchar;

% prosgegrammeni
ffmchar("1FBE",4,x_ht#,comma_depth#);
x1=.5w+noise; 
x2=.5w+noise; 
top y2=.1[-o,-d]+noise;
bot y1=noise-d;
draw z1--z2;
charanchorbots_[charepscode]=(.5w,0);
labels(1,2); 
endchar;

% ypogegrammeni
ffmchar("037A",4,x_ht#,comma_depth#);
x1=.5w+noise; 
x2=.5w+noise; 
top y2=.1[-o,-d]+noise;
bot y1=noise-d;
draw z1--z2;
charanchorbots_[charepscode]=(.5w,0);
labels(1,2); 
endchar;

% dialytika and varia
ffmchar("1FED",8,x_ht#+acc_gr#,0);
x1=x2=.5w-max(1.8u,(1+dotincr)*.7px)+noise; 
x3=x4=.5w+max(1.8u,(1+dotincr)*.7px)+noise; 
bot y1=.3[x_ht,x_ht+acc_ht]+noise;
y2=y1+dotincr*py;
bot y3=.3[x_ht,x_ht+acc_ht]+noise;
y4=y3+dotincr*py;
draw dotcircle(z1,z2);
draw dotcircle(z3,z4);
charanchortops_[charepscode]=(.5w,x_ht);
% varia
rt x5=.6w+noise; 
lft x6=noise; 
bot y5=.5[x_ht,h]+noise;
top y6=h+o+noise;
draw z5--z6;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4,5,6); 
endchar;

% dieresistonos
ffmchar("0385",8,x_ht#+acc_gr#,0);
x1=x2=.5w-max(1.8u,(1+dotincr)*.7px)+noise; 
x3=x4=.5w+max(1.8u,(1+dotincr)*.7px)+noise; 
bot y1=.3[x_ht,x_ht+acc_ht]+noise;
y2=y1+dotincr*py;
bot y3=.3[x_ht,x_ht+acc_ht]+noise;
y4=y3+dotincr*py;
draw dotcircle(z1,z2);
draw dotcircle(z3,z4);
charanchortops_[charepscode]=(.5w,x_ht);
% tonos
lft x5=.4w+noise; 
rt x6=w+noise; 
bot y5=.5[x_ht,h]+noise;
top y6=h+o+noise;
draw z5--z6;
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4,5,6); 
endchar;

% dialytika and oxia
ffmcopiedchar("1FEE","0385");

% dialytika and perispomeni
ffmchar("1FC1",9,x_ht#+acc_gr#,0);
x1=x2=.5w-max(1.8u,(1+dotincr)*.7px)+noise; 
x3=x4=.5w+max(1.8u,(1+dotincr)*.7px)+noise; 
bot y1=.3[x_ht,x_ht+acc_ht]+noise;
y2=y1+dotincr*py;
bot y3=.3[x_ht,x_ht+acc_ht]+noise;
y4=y3+dotincr*py;
draw dotcircle(z1,z2);
draw dotcircle(z3,z4);
charanchortops_[charepscode]=(.5w,x_ht);
% perispomeni
lft x5=eps+noise; 
x6=.3w+noise;
x8=.7w+noise;
x7=.5w+noise;
rt x9=w-eps+noise; 
bot y5=.55[x_ht,h]+noise;
bot y8=.55[x_ht,h]+noise;
top y6=h+o+noise;
top y9=h+o+noise;
y7=.5[y6,y8];
if (1.3px>(top y6-bot y5)) or (4.5px>w): 
 draw z5{randup}..tension 2..z6{randrt}
  ..tension 2..z8{randrt}
  ..tension 2..z9{randup};
else:
 draw z5{randup}...z6{randrt}...z7
  ...z8{randrt}...z9{randup};
fi
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4,5,6,7,8,9); 
endchar;

% wide breve
ffmchar("E002",10,x_ht#+acc_ht#,0);
lft x1=noise; 
x2=.5w+noise;
rt x3=w+noise; 
top y1=h+o+noise;
top y3=h+o+noise;
bot y2=.2[x_ht,h]+noise;
draw half(z1,-randup,z2,randrt,z3,randup);
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3); 
endchar;

% combining breve below
ffmchar("032E",7,x_ht#,comma_depth#);
lft x1=noise; 
x2=.5w+noise;
rt x3=w+noise; 
top y1=-.2d+noise;
top y3=-.2d+noise;
bot y2=noise-d-o;
draw half(z1,-randup,z2,randrt,z3,randup);
charanchortops_[charepscode]=(.5w,0);
labels(1,2,3); 
endchar;

% combining inverted breve below
ffmchar("032F",7,x_ht#,comma_depth#);
lft x1=noise; 
x2=.5w+noise;
rt x3=w+noise; 
bot y1=noise-d-o;
bot y3=noise-d-o;
top y2=-.2d+noise;
draw half(z1,randup,z2,randrt,z3,-randup);
charanchortops_[charepscode]=(.5w,0);
labels(1,2,3); 
endchar;

% perispomeni
ffmchar("1FC0",9,x_ht#+acc_gr#,0);
lft x1=eps+noise; 
x2=.3w+noise;
x4=.7w+noise;
x3=.5w+noise;
rt x5=w-eps+noise; 
bot y1=.2[x_ht,h]+noise;
bot y4=.2[x_ht,h]+noise;
top y2=.7[x_ht,h]+noise;
top y5=.7[x_ht,h]+noise;
y3=.5[y2,y4];
if (1.3px>(top y2-bot y1)) or (4.5px>w): 
 draw z1{randup}..tension 2..z2{randrt}
  ..tension 2..z4{randrt}
  ..tension 2..z5{randup};
else:
 draw z1{randup}...z2{randrt}...z3
  ...z4{randrt}...z5{randup};
fi
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4,5); 
endchar;

% dasia and perispomeni
ffmchar("1FDF",9,x_ht#+acc_gr#,0);
lft x1=eps+noise; 
x2=.3w+noise;
x4=.7w+noise;
x3=.5w+noise;
rt x5=w-eps+noise; 
x6=.35w+noise;
x7=.35w+noise;
bot y1=.6[x_ht,h]+noise;
bot y4=.6[x_ht,h]+noise;
top y2=h+o+noise;
y3=.5[y2,y4];
top y5=h+o+noise;
y6=.6[x_ht,h]+noise;
bot y7=.1[x_ht,h]+noise;
if (1.3px>(top y2-bot y1)) or (4.5px>w): 
 draw z1{randup}..tension 2..z2{randrt}
  ..tension 2..z4{randrt}
  ..tension 2..z5{randup};
else:
 draw z1{randup}...z2{randrt}...z3
  ...z4{randrt}...z5{randup};
fi
draw arc(z6,-randrt-randup,z7,randrt-randup);
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4,5,6,7); 
endchar;

% psili and perispomeni
ffmchar("1FCF",9,x_ht#+acc_gr#,0);
lft x1=eps+noise; 
x2=.3w+noise;
x4=.7w+noise;
x3=.5w+noise;
rt x5=w-eps+noise; 
x6=.35w+noise;
x7=.35w+noise;
bot y1=.6[x_ht,h]+noise;
bot y4=.6[x_ht,h]+noise;
top y2=h+o+noise;
y3=.5[y2,y4];
top y5=h+o+noise;
y6=.6[x_ht,h]+noise;
bot y7=.1[x_ht,h]+noise;
if (1.3px>(top y2-bot y1)) or (4.5px>w): 
 draw z1{randup}..tension 2..z2{randrt}
  ..tension 2..z4{randrt}
  ..tension 2..z5{randup};
else:
 draw z1{randup}...z2{randrt}...z3
  ...z4{randrt}...z5{randup};
fi
draw arc(z6,randrt-randup,z7,-randrt-randup);
charanchortops_[charepscode]=(.5w,x_ht);
labels(1,2,3,4,5,6,7); 
endchar;

%------digits-------

% zero
ffmchar("0030",11,ht#,0);
italcorr .6ht#*slant;
x1=.5w+noise;
x2=good.x(2u+s+noise);
x3=.5w+noise; 
w-x4=good.x(2u+s+noise);  
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
labels(1,2,3,4); 
endchar;

% one
ffmchar("0031",11,ht#,0);
italcorr .7ht#*slant;
x1=leftstemloc+noise; 
w-x2=good.x(4.5u+s+noise);
w-x3=good.x(4.5u+s+noise);
y1=.618h+noise; 
top y2=h+o+noise;
bot y3=noise-o;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% two
ffmchar("0032",11,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc-ho+noise;
x5=good.x(2u+s+noise);
x2=.5[x1,x6]+noise;
w-x3=leftstemloc+noise;
x4=.5[x1,x6]+noise;
w-x6=leftstemloc-ho+noise; 
top y2=h+noise;
y3=.5[y4,y2]+noise;
y4=barheight+noise; 
bot y5=noise; 
bot y6=noise; 
z1=z2+whatever*randrt;
pair randir;
randir:=-randrt;
draw z1--z2 
 & half(z2,z2-z1,z3,-randup,z4,randir)
 & arc(z4,randir,z5,-randup)
 & z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% three
ffmchar("0033",11,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc-ho+noise;
x8=leftstemloc-ho+noise;
w-x3=good.x(2u+s+noise);
w-x6=good.x(2.5u+s+noise);
x5=.618[x2,x1]+noise;
x2=.55w+noise;
x4=.55w+noise;
x7=.55w+noise;
bot y1=noise;
bot y2=noise; 
top y7=h+noise;
top y8=h+noise;
y4=barheight+.5noise; 
y5=barheight+.5noise; 
y3=.5[y2,y4]+noise;
y6=.5[y4,y7]+noise;
draw z1--z2
 & half(z2,z2-z1,z3,randup,z4,z5-z4)
 & z4--z5;
draw half(z4,z4-z5,z6,randup,z7,z8-z7)
 & z7--z8;
labels(1,2,3,4,5,6,7,8); 
endchar;

% four
ffmchar("0034",11,ht#,0);
italcorr .7ht#*slant;
x2=good.x(1.5u+s+noise);
w-rt x3=eps+noise;
w-x4=good.x(3.5u+s+noise);
w-x5=good.x(3.5u+s+noise);
rt x1+.5u=lft x4+noise;
y4=.618h+noise; 
top y1=h+o+noise; 
bot y5=noise-o;
y2=.618[y4,y5]+noise;
y3=.618[y4,y5]+noise;
draw z1--z2--z3;
draw z4--z5;
labels(1,2,3,4,5); 
endchar;

% five
ffmchar("0035",11,ht#,0);
italcorr .8ht#*slant;
x5=leftstemloc+noise; 
x6=leftstemloc+noise; 
x7=w-x5+noise; 
x1=leftstemloc-ho+noise; 
w-x3=good.x(2u+s+noise);
x2=.5[x5,x3]+noise;
x4=.5[x5,x3]+noise;
bot y1=noise; 
bot y2=noise; 
top y6=h+noise;
top y7=h+noise;
y4=barheight+.5noise; 
y5=barheight+.5noise; 
y3=.5[y2,y4]+noise;
draw z1--z2
 & half(z2,z2-z1,z3,randup,z4,z5-z4)
 & z4--z5--z6--z7;
labels(1,2,3,4,5,6,7); 
endchar;

% six
ffmchar("0036",11,ht#,0);
italcorr .8ht#*slant;
x1=.5[x2,x4]+noise;
x2=good.x(2u+s+noise);
x3=.5[x2,x4]+noise; 
w-x4=good.x(1.75u+s+noise);  
x5=.618[x2,x4]+noise;
w-x6=leftstemloc+noise;
y1=barheight+noise; 
y2=.5[y1,y3]+noise;
bot y3=noise-o;
y4=.5[y1,y3]+noise;
top y5=h+noise;
z6=z5+whatever*randrt;
pair randir;
randir:=randup;
draw full(z1,-randrt,z2,-randir,z3,randrt,z4,randup);
draw arc(z2,randir,z5,z6-z5)
 & z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% seven
ffmchar("0037",11,ht#,0);
italcorr ht#*slant;
x1=good.x(2u+s+noise);
w-x2=good.x(2u+s+noise);
x3=.618[x2,x1]+noise;
top y1=h+noise; 
top y2=h+noise; 
bot y3=noise-o;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% eight
ffmchar("0038",11,ht#,0);
italcorr .7ht#*slant;
x1=.5w+noise;
x3=.5w+noise;
x6=.5w+noise;
x2=good.x(1.5u+s+noise);
w-x4=good.x(1.5u+s+noise);
x7=.2[x2,x1]+noise;
w-x5=.2[x2,x1]+noise;
y1=barheight+noise; 
bot y3=noise-o;
top y6=h+o+noise;
y2=.5[y1,y3]+noise; 
y4=.5[y1,y3]+noise; 
y7=.5[y1,y6]+noise;
z5=z7+whatever*(z4-z2);
pair randir;
randir:=randrt;
draw full(z1,-randir,z2,-randup,z3,randrt,z4,randup);
draw full(z1,randir,z5,randup,z6,-randrt,z7,-randup);
labels(1,2,3,4,5,6,7); 
endchar;

% nine
ffmchar("0039",11,ht#,0);
italcorr .7ht#*slant;
x1=.5[x2,x4]+noise;
x2=good.x(1.75u+s+noise);
x3=.5[x2,x4]+noise;
w-x4=good.x(2u+s+noise);  
x5=.618[x4,x2]+noise;
x6=leftstemloc+noise;
top y1=h+o+noise; 
y2=.5[y1,y3]+noise;
y4=.5[y1,y3]+noise;
bot y5=noise;
y3=barheight+noise;
z6=z5+whatever*randrt;
pair randir;
randir:=randup;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randir);
draw arc(z4,-randir,z5,z6-z5)
 & z5--z6;
labels(1,2,3,4,5,6); 
endchar;

%------punctation-------

% space
ffmchar("0020",6,x_ht#,0);
endchar;

% visiblespace
ffmchar("2420",6,ht#,comma_depth#);
lft x1=good.x(.5u+noise);
lft x2=good.x(.5u+noise);
rt x3=good.x(w-.5u+noise);
rt x4=good.x(w-.5u+noise);
top y1=o+noise;
top y4=o+noise;
bot y2=noise-d;
bot y3=noise-d;
draw z1--z2--z3--z4;
labels(1,2,3,4); 
endchar;

% period
ffmchar("002E",5,x_ht#,0);
x1=x2=.5w+noise; 
bot y1=noise-o;
y2=y1+dotincr*py;
draw dotcircle(z1,z2);
labels(1,2); 
endchar;

% periodcentered
ffmchar("00B7",5,x_ht#,0);
x1=x2=.5w+noise; 
y1=barheight+noise;
y2=y1+dotincr*py;
draw dotcircle(z1,z2);
labels(1,2); 
endchar;

% anoteleia
ffmchar("0387",5,x_ht#,0);
x1=x2=.5w+noise; 
y1=barheight+noise;
y2=y1+dotincr*py;
draw dotcircle(z1,z2);
labels(1,2); 
endchar;

% colon
ffmchar("003A",5,x_ht#,0);
italcorr .8barheight#*slant;
x1=x2=.5w+noise;
x3=x4=.5w+noise;
bot y1=noise-o;
y2=y1+dotincr*py;
y3=y4-dotincr*py=barheight+noise;
draw dotcircle(z1,z2);
draw dotcircle(z3,z4);
labels(1,2,3,4); 
endchar;

% comma
ffmchar("002C",6,x_ht#,comma_depth#);
x1=leftstemloc; 
x2=w-x1;
top y2=.382barheight;
bot y1=-d;
draw z1--z2;
labels(1,2); 
endchar;

% semicolon
ffmchar("003B",6,x_ht#,comma_depth#);
italcorr barheight#*slant;
x1=leftstemloc+noise; 
w-x2=leftstemloc+noise; 
w-x3=w-x4=leftstemloc+noise; 
y3=y4-dotincr*py=barheight;
top y2=.382y3;
bot y1=-d;
draw z1--z2;
draw dotcircle(z3,z4);
labels(1,2,3,4); 
endchar;

% exclam
ffmchar("0021",5,ht#,0);
italcorr .8ht#*slant;
x1=x2=.5w+noise; 
x3=.5w+noise; 
x4=.5w+noise; 
bot y1=noise-o; 
y2=y1+dotincr*py;
top y4=h+o+noise;
bot y3=max(.618barheight,top y2+eps)+noise; 
draw dotcircle(z1,z2);
draw z3--z4; 
labels(1,2,3,4); 
endchar;

% question
ffmchar("003F",12,ht#,0);
italcorr .8ht#*slant;
x1=good.x(1.5u+s+noise);
w-x3=good.x(2u+s+noise);
x5=.618[x3,x1]+noise; 
x2=.618[x1,x3]+noise; 
x4=.618[x1,x3]+noise; 
x6=x7=.618[x3,x1]+noise; 
top y1=h+noise; 
top y2=h+noise; 
y4=barheight+noise; 
y3=.5[y2,y4]+noise;
bot y6=noise-o;
y7=y6+dotincr*py;
bot y5=max(.618y4,top y7+eps)+noise; 
pair randir;
randir:=-randrt;
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,randir)
 & arc(z4,randir,z5,-randup);
draw dotcircle(z6,z7);
labels(1,2,3,4,5,6,7); 
endchar;

% parenleft
ffmchar("0028",8,ht#,comma_depth#);
italcorr .8ht#*slant;
x2=good.x(1.5u+s+noise);
w-x1=leftstemloc-ho+noise;
w-x3=leftstemloc-ho+noise;
top y1=h+o+noise; 
bot y3=noise-o-d;
y2=.5[-d,h]+noise;
draw half(z1,-randrt,z2,-randup,z3,randrt);
labels(1,2,3); 
endchar;

% parenright
ffmchar("0029",8,ht#,comma_depth#);
italcorr .8ht#*slant;
w-x2=good.x(1.5u+s+noise);
x1=leftstemloc-ho+noise;
x3=leftstemloc-ho+noise;
top y1=h+o+noise; 
bot y3=noise-o-d;
y2=.5[-d,h]+noise;
draw half(z1,randrt,z2,-randup,z3,-randrt);
labels(1,2,3); 
endchar;

% hyphen
ffmchar("002D",6,x_ht#,0);
italcorr .618x_ht#*slant;
lft x1=noise; 
rt x2=w+noise;
y1=.618h+noise;
y2=.618h+noise;
draw z1--z2;
labels(1,2); 
endchar;

% emdash
ffmchar("2014",18,x_ht#,0);
italcorr .618x_ht#*slant;
lft x1=noise; 
rt x2=w+noise;
y1=.618h+noise;
y2=.618h+noise;
draw z1--z2;
labels(1,2); 
endchar;

% endash
ffmchar("2013",9,x_ht#,0);
italcorr .618x_ht#*slant;
lft x1=noise; 
rt x2=w+noise;
y1=.618h+noise;
y2=.618h+noise;
draw z1--z2;
labels(1,2); 
endchar;

% zero width space
ffmchar("200B",0,x_ht#,0);
endchar;

% quotedbl
ffmchar("0022",8,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise;
x3=w-leftstemloc+noise; 
x4=w-leftstemloc+noise;
top y1=h+o+noise;
top y3=h+o+noise;
y2=.5[barheight,x_ht]+noise;
y4=.5[barheight,x_ht]+noise;
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

% quotesingle
ffmchar("0027",4,ht#,0);
italcorr ht#*slant;
x1=.5w+noise; 
x2=.5w+noise; 
top y1=h+o+noise;
y2=.5[barheight,x_ht]+noise;
draw z1--z2;
labels(1,2); 
endchar;

% quoteleft
ffmchar("2018",5,ht#,0);
italcorr ht#*slant;
x1=.4w+noise; 
x2=.6w+noise; 
top y1=h+o+noise;
y2=.5[barheight,x_ht]+noise;
draw z1--z2;
labels(1,2); 
endchar;

% quoteright
ffmchar("2019",5,ht#,0);
italcorr ht#*slant;
x1=.4w+noise; 
x2=.6w+noise; 
top y2=h+o+noise;
y1=.5[barheight,x_ht]+noise;
draw z1--z2;
charanchortoprights_[charepscode]=(.5w,h);
labels(1,2); 
endchar;

% quotedblleft
ffmchar("201C",6,ht#,0);
italcorr ht#*slant;
x1=.2w+noise; 
x4=.8w+noise; 
x2=.3w+noise; 
x3=.7w+noise; 
top y1=h+o+noise;
top y3=h+o+noise;
y2=.5[barheight,x_ht]+noise;
y4=.5[barheight,x_ht]+noise;
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

% quotedblright
ffmchar("201D",6,ht#,0);
italcorr ht#*slant;
x2=.2w+noise; 
x3=.8w+noise; 
x1=.3w+noise; 
x4=.7w+noise; 
top y1=h+o+noise;
top y3=h+o+noise;
y2=.5[barheight,x_ht]+noise;
y4=.5[barheight,x_ht]+noise;
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

% quotesinglbase
ffmchar("201A",3,x_ht#,comma_depth#);
x1=.4w+noise; 
x2=.6w+noise;
bot y1=noise-d-o; 
y2=-d+ht-.5[barheight,x_ht]+noise;
draw z1--z2;
labels(1,2); 
endchar;

% quotedblbase
ffmchar("201E",6,x_ht#,comma_depth#);
x2=.3w+noise; 
x3=.7w+noise; 
x1=.2w+noise; 
x4=.8w+noise; 
bot y1=noise-d-o; 
bot y3=noise-d-o; 
y2=-d+ht-.5[barheight,x_ht]+noise;
y4=-d+ht-.5[barheight,x_ht]+noise;
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

% guilsinglleft
ffmchar("2039",7,x_ht#,0);
italcorr x_ht#*slant;
x1=good.x(w-2u-s+noise); 
x2=good.x(2u+s+noise); 
x3=good.x(w-2u-s+noise); 
top y1=h+o+noise;
bot y3=noise;
y2=.5h+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% guilsinglright
ffmchar("203A",7,x_ht#,0);
italcorr .7x_ht#*slant;
x1=good.x(2u+s+noise); 
x2=good.x(w-2u-s+noise); 
x3=good.x(2u+s+noise); 
top y1=h+o+noise;
bot y3=noise;
y2=.5h+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% guillemotleft
ffmchar("00AB",10,x_ht#,0);
italcorr x_ht#*slant;
x1=.4w+noise; 
x2=good.x(2u+s+noise); 
x3=.4w+noise; 
x4=good.x(w-2u-s+noise); 
x5=.6w+noise; 
x6=good.x(w-2u-s+noise); 
top y1=h+o+noise;
bot y3=noise;
y2=.5h+noise;
top y4=h+o+noise;
bot y6=noise;
y5=.5h+noise;
draw z1--z2--z3;
draw z4--z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% guillemotright
ffmchar("00BB",10,x_ht#,0);
italcorr .7x_ht#*slant;
x1=good.x(2u+s+noise); 
x2=.4w+noise; 
x3=good.x(2u+s+noise); 
x4=.6w+noise; 
x5=good.x(w-2u-s+noise); 
x6=.6w+noise; 
top y1=h+o+noise;
bot y3=noise;
y2=.5h+noise;
top y4=h+o+noise;
bot y6=noise;
y5=.5h+noise;
draw z1--z2--z3;
draw z4--z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% percent
ffmchar("0025",16,ht#,0);
italcorr .8ht#*slant;
x5=good.x(1.5u+s+noise);
w-x7=good.x(1.5u+s+noise); 
x1=.2w+noise; 
x2=.8w+noise; 
x3=6.5u+s+noise;
x4=4u+s+noise;
x6=4u+s+noise;
w-x8=4u+s+noise;
w-x9=6.5u+s+noise;
w-x10=4u+s+noise;
bot y1=noise-o;
top y2=h+o+noise; 
y3=.8h+noise;
top y4=h+o+noise;
y5=.8h+noise;
bot y6=.6h-o+noise;
y7=.2h+noise;
top y8=.4h+o+noise;
y9=.2h+noise;
bot y10=noise-o;
draw z1--z2;
draw full(z3,randup,z4,-randrt,z5,-randup,z6,randrt);
draw full(z7,randup,z8,-randrt,z9,-randup,z10,randrt);
labels(1,2,3,4,5,6,7,8,9,10); 
endchar;

% perthousandzero
ffmchar("E000",8,ht#,0);
x3=good.x(1.5u+s+noise);
w-x1=good.x(1.5u+s+noise); 
x2=.5w+noise;
x4=.5w+noise;
y1=.2h+noise;
top y2=.4h+o+noise;
y3=.2h+noise;
bot y4=noise-o;
draw full(z1,randup,z2,-randrt,z3,-randup,z4,randrt);
labels(1,2,3,4); 
endchar;

% perthousand
ffmchainedchar("2030","0025","E000",0);

% pertenthousand
ffmchainedchar("2031","2030","E000",0);

% degree
ffmchar("00B0",8,ht#,0);
x3=good.x(1.5u+s+noise);
w-x1=good.x(1.5u+s+noise); 
x2=.5w+noise;
x4=.5w+noise;
y1=.8h+noise;
top y2=h+o+noise;
y3=.8h+noise;
bot y4=.6h-o+noise;
draw full(z1,randup,z2,-randrt,z3,-randup,z4,randrt);
labels(1,2,3,4); 
endchar;

% slash
ffmchar("002F",10,ht#,comma_depth#);
italcorr ht#*slant;
x1=good.x(2u+s+noise);
x2=good.x(w-2u-s+noise);
bot y1=noise-d-o; 
top y2=h+o+noise;
draw z1--z2;
labels(1,2); 
endchar;

% plus
ffmchar("002B",15,x_ht#,0);
italcorr .5x_ht#*slant;
x1=good.x(2u+s+noise);
x2=good.x(w-2u-s+noise);
x3=.5w+noise;
x4=.5w+noise;
y1=.5h+noise; 
y2=.5h+noise; 
y3=noise-o; 
y4=h+o+noise; 
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

% equal
ffmchar("003D",15,x_ht#,0);
italcorr .8x_ht#*slant;
x1=good.x(2u+s+noise);
x2=good.x(w-2u-s+noise);
x3=good.x(2u+s+noise);
x4=good.x(w-2u-s+noise);
y1=.3h+noise; 
y2=.3h+noise; 
y3=.8h+noise; 
y4=.8h+noise; 
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

% numbersign
ffmchar("0023",15,ht#,comma_depth#);
italcorr .8ht#*slant;
x1=good.x(2u+s+noise);
x2=good.x(w-2u-s+noise);
x3=good.x(2u+s+noise);
x4=good.x(w-2u-s+noise);
x5=.25w+noise;
x6=.45w+noise;
x7=.55w+noise;
x8=.75w+noise;
y1=.3x_ht+noise; 
y2=.3x_ht+noise; 
y3=.8x_ht+noise; 
y4=.8x_ht+noise; 
bot y5=1.1x_ht-h-o+noise;
top y6=h+o+noise;
bot y7=1.1x_ht-h-o+noise;
top y8=h+o+noise;
draw z1--z2;
draw z3--z4;
draw z5--z6;
draw z7--z8;
labels(1,2,3,4,5,6,7,8); 
endchar;

% dollar
ffmchar("0024",11,ht#,0);
italcorr .7ht#*slant;
x3=good.x(1.5u+s+noise);
x8=good.x(1.5u+s+noise);
w-x1=leftstemloc+noise;
w-x6=good.x(1.5u+s+noise);
x2=.382[x3,x6]+noise;
x4=.382[x3,x6]+noise;
x5=.618[x3,x6]+noise;
x7=.618[x3,x6]+noise;
x9=.5w+noise;
x10=.5w+noise;
top y1=h+noise; 
top y2=h+noise; 
y3=.6[y2,y4]+noise; 
y4=barheight+noise; 
y5=barheight+noise; 
y6=.5[y5,y7]+noise; 
bot y7=noise;
bot y8=noise;
top y9=noise;
bot y10=h+noise;
draw z1--z2 
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5 
 & half(z5,z5-z4,z6,-randup,z7,z8-z7) 
 & z7--z8;
draw z9--z10;
labels(1,2,3,4,5,6,7,8,9,10); 
endchar;

% Euro
ffmchar("20AC",11,ht#,0);
italcorr ht#*slant;
x1=w-leftstemloc+ho+noise;
x2=min(x1-.1w,.75w)+noise;
x3=.3w;
x5=w-leftstemloc+ho+noise;
x4=min(x5-.1w,.75w)+noise;
x6=leftstemloc-ho+noise;
x7=.7w+noise;
x8=leftstemloc-ho+noise;
x9=.7w+noise;
top y2=h+noise;  
y3=barheight+noise;
bot y4=0; %no noise!
y6=barheight+.1h+noise;
y7=barheight+.1h+noise;
y8=barheight-.1h+noise;
y9=barheight-.1h+noise;
z5=z4+whatever*randrt;
z1=z2+whatever*randrt;
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5;
draw z6--z7;
draw z8--z9;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=z4;
labels(1,2,3,4,5,6,7,8,9); 
endchar;

% ampersand
ffmchar("0026",15,ht#,0);
italcorr ht#*slant;
x3=good.x(1.5u+s+noise);
x6=good.x(1.5u+s+noise);
rt x12=w-eps;
x1=.618w+noise;
x11=.618w+noise;
x10=.5[x11,x12]+noise;
x9=.5[x11,x12]+noise;
x2=.618[x9,x6]+noise;
x4=.618[x9,x6]+noise;
x7=.618[x9,x6]+noise;
x8=.618[x7,x9]+noise;
x5=x4+.1u;
top y1=h+.5noise;
top y2=h+.5noise;
bot y7=.5noise;
bot y8=.5noise;
y4=barheight+noise;
y11=barheight+noise;
y12=barheight+noise;
y3=.5[y2,y4]+noise;
y6=.5[y4,y7]+noise;
y9=.5[y4,y7]+noise;
z5=z4+whatever*randrt;
z10=whatever[z11,z12];
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5;
draw half(z4,z4-z5,z6,-randup,z7,z8-z7)
 & z7--z8
 & arc(z8,z8-z7,z9,z10-z9)
 & z9--z10;
draw z11--z12;
labels(1,2,3,4,5,6,7,8,9,10,11,12); 
endchar;

% asterisk
ffmchar("002A",12,ht#,0);
numeric outerradius,innerradius;
outerradius=.5w-2u-s;
innerradius=px;
path outercircle,innercircle;
outercircle=(.5w,h+o+noise)..(.5w,h-2*outerradius)..cycle;
innercircle=(.5w,h+o+noise-outerradius+innerradius)
 ..(.5w,h+o+noise-outerradius-innerradius)..cycle;
z1=point 0 of outercircle+(noise,noise);
z2=point 0 of innercircle;
z3=point .4 of outercircle+(noise,noise);
z4=point .4 of innercircle;
z5=point .8 of outercircle+(noise,noise);
z6=point .8 of innercircle;
z7=point 1.2 of outercircle+(noise,noise);
z8=point 1.2 of innercircle;
z9=point 1.6 of outercircle+(noise,noise);
z10=point 1.6 of innercircle;
draw z1--z2;
draw z3--z4;
draw z5--z6;
draw z7--z8;
draw z9--z10;
labels(1,2,3,4,5,6,7,8,9,10); 
endchar;

% less
ffmchar("003C",12,x_ht#,0);
italcorr x_ht#*slant;
x1=good.x(w-2u-s+noise); 
x2=good.x(2u+s+noise); 
x3=good.x(w-2u-s+noise); 
top y1=h+o+noise;
bot y3=noise;
y2=.5h+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% greater
ffmchar("003E",12,x_ht#,0);
italcorr .5x_ht#*slant;
x1=good.x(2u+s+noise); 
x2=good.x(w-2u-s+noise); 
x3=good.x(2u+s+noise); 
top y1=h+o+noise;
bot y3=noise;
y2=.5h+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% at
ffmchar("0040",16,ht#,0);
italcorr .8ht#*slant;
x10=good.x(1.5u+s+noise);
w-x8=good.x(1.5u+s+noise); 
w-x7=1.5u+s+noise;
x2=.5w+noise;
x4=.5w+.5noise; 
x9=.5w+noise;
x11=.5w+noise;
x1=.65w+noise;
x5=.65w+.5noise;
x3=.35w+noise;
x6=.5[x1,x7];
top y9=h+o+noise; 
bot y11=noise-o;
y8=.5h+noise;
y10=.5h+noise;
y3=.5h+noise;
y1=.33h+noise;
y2=.33h+noise;
y7=.33h+noise;
y4=.67h+.5noise;
y5=.67h+.5noise;
y6=.15h+noise;
pair randir;
randir=-randup;
draw z1--z2 
 & half(z2,z2-z1,z3,randup,z4,z5-z4)
 & z4--z5--z1 
 & half(z1,z1-z5,z6,randrt,z7,z8-z7)
 & z7--z8
 & half(z8,z8-z7,z9,-randrt,z10,randir)
 & arc(z10,randir,z11,randrt);
labels(1,2,3,4,5,6,7,8,9,10,11); 
endchar;

% bracketleft
ffmchar("005B",8,ht#,comma_depth#);
italcorr ht#*slant;
x2=leftstemloc+noise;
x3=leftstemloc+noise;
w-x1=leftstemloc-ho+noise;
w-x4=leftstemloc-ho+noise;
top y1=h+noise;
top y2=h+noise;
bot y3=noise-d; 
bot y4=noise-d; 
draw z1--z2--z3--z4;
labels(1,2,3,4); 
endchar;

% backslash
ffmchar("005C",10,ht#,comma_depth#);
x1=good.x(2u+s+noise);
x2=good.x(w-2u-s+noise);
bot y2=noise-d-o; 
top y1=h+o+noise;
draw z1--z2;
labels(1,2); 
endchar;

% bracketright
ffmchar("005D",8,ht#,comma_depth#);
italcorr ht#*slant;
w-x2=leftstemloc+noise;
w-x3=leftstemloc+noise;
x1=leftstemloc-ho+noise;
x4=leftstemloc-ho+noise;
top y1=h+noise;
top y2=h+noise;
bot y3=noise-d; 
bot y4=noise-d; 
draw z1--z2--z3--z4;
labels(1,2,3,4); 
endchar;

% asciicircum
ffmchar("005E",8,ht#,0);
lft x1=eps+noise; 
x2=.5w+noise;
rt x3=w-eps+noise; 
bot y1=x_ht+noise;
bot y3=x_ht+noise;
top y2=h+o+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% underscore
ffmchar("005F",9,0,comma_depth#);
x1=0; 
x2=w;
bot y1=-.8d;
bot y2=-.8d;
draw z1--z2;
labels(1,2); 
endchar;

% braceleft
ffmchar("007B",8,ht#,comma_depth#);
italcorr ht#*slant;
w-x1=leftstemloc-ho+noise;
w-x5=leftstemloc-ho+noise;
x2=leftstemloc+noise;
x4=leftstemloc+noise;
lft x3=eps+noise;
top y1=h+o+noise; 
bot y5=noise-o-d;
y3=.5[-d,h]+noise;
y2=.75[-d,h]+noise;
y4=.25[-d,h]+noise;
pair randira;
randira=randrt;
draw half(z1,-randrt,z2,-randup,z3,-randira);
draw half(z3,randira,z4,-randup,z5,randrt);
labels(1,2,3,4,5); 
endchar;

% bar
ffmchar("007C",5,ht#,comma_depth#);
x1=.5w+noise; 
x2=.5w+noise; 
top y1=h+o+noise;
bot y2=noise-d-o; 
draw z1--z2; 
labels(1,2); 
endchar;

% braceright
ffmchar("007D",8,ht#,comma_depth#);
italcorr .8ht#*slant;
x1=leftstemloc-ho+noise;
x5=leftstemloc-ho+noise;
w-x2=leftstemloc+noise;
w-x4=leftstemloc+noise;
rt x3=w-eps+noise;
top y1=h+o+noise; 
bot y5=noise-o-d;
y3=.5[-d,h]+noise;
y2=.75[-d,h]+noise;
y4=.25[-d,h]+noise;
pair randira;
randira=randrt;
draw half(z1,randrt,z2,-randup,z3,randira);
draw half(z3,-randira,z4,-randup,z5,-randrt);
labels(1,2,3,4,5); 
endchar;

% asciitilde
ffmchar("007E",11,x_ht#,0);
lft x1=eps+noise; 
x2=.3w+noise;
x4=.7w+noise;
x3=.5w+noise;
rt x5=w-eps+noise;
bot y1=.5h+noise;
bot y4=.5h+noise;
top y2=h+noise;
top y5=h+noise;
y3=.75h+noise;
if angle direction 1 of (z2{right}...z3...z4{right}) < -90:
 draw z1{randup}...z2{randrt}
  ...z3{-randup}...z4{randrt}...z5{randup};
else:
 draw z1{randup}...z2{randrt}
  ...z3...z4{randrt}...z5{randup};
fi
labels(1,2,3,4,5); 
endchar;

% dash
ffmchar("2010",6,x_ht#,0);
italcorr .618x_ht#*slant;
lft x1=noise; 
rt x2=w+noise;
y1=.618h+noise;
y2=.618h+noise;
draw z1--z2;
labels(1,2); 
endchar;

% section
ffmchar("00A7",10,ht#,comma_depth#);
italcorr .5ht#*slant;
x1=.5w+noise;
x2=good.x(2u+s+noise);
x3=.5w+noise; 
w-x4=good.x(2u+s+noise);  
x5=good.x(1.5u+s+noise);
x6=.5w+noise;
w-x7=leftstemloc+noise;
w-x8=good.x(1.5u+s+noise);  
x9=.5w+noise;
x10=leftstemloc+noise;
y1=.65[-d,h]+noise; 
y2=.5[-d,h]+noise; 
y3=.35[-d,h]+noise; 
y4=.5[-d,h]+noise; 
y5=.5[y1,y6]+noise; 
top y6=h+noise; 
top y7=h+noise; 
y8=.5[y4,y9]+noise; 
bot y9=noise-d; 
bot y10=noise-d; 
pair randira,randirb;
randira=-randrt;
randirb=randrt;
draw full(z1,randira,z2,-randup,z3,randirb,z4,randup);
draw half(z1,randira,z5,randup,z6,z7-z6) & z6--z7;
draw half(z3,randirb,z8,-randup,z9,z10-z9) & z9--z10;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7,8,9,10); 
endchar;

% exclamdown
ffmchar("00A1",5,ht#-comma_depth#,comma_depth#);
italcorr .8(ht#-comma_depth#)*slant;
x1=x2=.5w+noise; 
x3=.5w+noise; 
x4=.5w+noise; 
top y1=h+o+noise; 
y2=y1-dotincr*py;
bot y4=noise-d-o;
top y3=min(h-.618barheight,bot y2-eps)+noise; 
draw dotcircle(z1,z2);
draw z3--z4; 
labels(1,2,3,4); 
endchar;

% questiondown
ffmchar("00BF",12,ht#-comma_depth#,comma_depth#);
w-x1=good.x(1.5u+s+noise);
x3=good.x(2u+s+noise);
x5=.618[x3,x1]+noise; 
x2=.618[x1,x3]+noise; 
x4=.618[x1,x3]+noise; 
x6=x7=.618[x3,x1]+noise; 
bot y1=noise-d; 
bot y2=noise-d; 
top y6=h+o+noise;
y7=y6-dotincr*py;
top y5=min(h-.618barheight,bot y7-eps)+noise; 
y4=.8[y2,y5]+noise;
y3=.5[y2,y4]+noise;
pair randir;
randir:=-randrt;
draw arc(z5,-randup,z4,randir)
 & half(z4,randir,z3,-randup,z2,z1-z2)
 & z2--z1;
draw dotcircle(z6,z7);
labels(1,2,3,4,5,6,7); 
endchar;

% sterling
ffmchar("00A3",11,ht#,0);
italcorr .8ht#*slant;
x5=good.x(1.5u+s+noise);
x7=good.x(1.5u+s+noise);
rt x6=w-eps+noise;
x1=w-leftstemloc+o+noise;
x8=w-leftstemloc+o-xgap+noise;
x2=.618[x5,x1]+noise;
x3=.618[x2,x5]+noise;
x4=.618[x2,x5]+noise;
top y1=h+noise;
bot y5=noise; 
bot y6=noise; 
y7=barheight+noise;
y8=barheight+noise;
y4=barheight+noise;
y3=.5[barheight,h]+noise;
z2=z1+whatever*randir;
draw z1--z2
 & arc(z2,z2-z1,z3,z4-z3)
 & z3--z4
 & arc(z4,z4-z3,z5,z5-z6);
draw z5--z6;
draw z7--z8;
labels(1,2,3,4,5,6,7,8); 
endchar;

% greek numeral sign
ffmchar("0374",5,ht#,0);
italcorr ht#*slant;
x1=.4w+noise; 
x2=.6w+noise; 
top y2=h+o+noise;
y1=.8[barheight,x_ht]+noise;
draw z1--z2;
charanchortoprights_[charepscode]=(.5w,h);
labels(1,2); 
endchar;

% greek lower numeral sign
ffmchar("0375",5,x_ht#,comma_depth#);
x1=.4w+noise; 
x2=.6w+noise; 
top y2=noise+o;
bot y1=noise-o-d;
draw z1--z2;
labels(1,2); 
endchar;

%------uppercase-------

ffmchar("A",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise; 
x3=.5w+noise; 
w-x4=leftstemloc+noise;
w-x5=leftstemloc+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+o; %no noise because of Aring
y4=barheight+noise;
bot y5=noise-o;
bot y6=0; %no noise
z6=whatever[z4,z5];
draw z1--z2--z4--z5;
draw half(z2,z2-z1,z3,randrt,z4,z5-z4);
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z6;
labels(1,2,3,4,5,6); 
endchar;

% AE
ffmchar("00C6",22,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise;
x3=.5w+noise;
x4=.5w+noise;
x5=w-leftstemloc+o+noise;
x6=w-leftstemloc+o-xgap+noise;
x7=w-leftstemloc+o+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+noise;
bot y4=noise;
top y5=h+noise;
y6=barheight+noise;
bot y7=noise;
draw z1--z2--z6;
draw arc(z2,z2-z1,z3,z5-z3);
draw z5--z3--z4--z7;
charanchortops_[charepscode]=(x3,h);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("B",14,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise; 
x7=.5[w-x1,lft w]+noise;
x5=.85[x1,x7]+noise;
x8=.5[x1,x5]+noise;
x4=.4[x1,x5]+noise; 
x6=.4[x1,x5]+noise; 
bot y1=noise;
y2=barheight+noise;
top y3=h+noise; 
y4=y3+noise; 
y6=y2+.5noise;
bot y8=noise;
y5=.5[y4,y6]+noise; 
y7=.5[y6,y8]+noise;
z2=whatever[z1,z3];
z9=whatever[z2,z6];
draw z1--z3--z4
 & half(z4,z4-z3,z5,-randup,z6,z2-z6)
 & z6--z2; 
draw half(z6,z6-z2,z7,-randup,z8,z1-z8)
 & z8--z1;
labels(1,2,3,4,5,6,7,8); 
endchar;

ffmchar("C",14,ht#,0);
italcorr ht#*slant;
x1=w-leftstemloc+ho+noise;
x2=.55w+noise;
x3=good.x(1.5u+s+noise);
x4=.55w+noise;
x5=w-leftstemloc+ho+noise;
top y1=h+noise;
top y2=h+noise;  
y3=barheight+noise;
bot y4=0; %no noise!
z5=z4+whatever*randrt;
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z4;
labels(1,2,3,4,5); 
endchar;

ffmchar("D",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=.45w+noise;
x5=.45w+noise;
w-x4=good.x(1.5u+s+noise);
bot y1=noise;
bot y5=noise;
top y2=h+noise;
top y3=h+noise;
y4=barheight+noise;
draw z1--z2--z3
 & half(z3,z3-z2,z4,-randup,z5,z1-z5)
 & z5--cycle;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

% Eth
ffmchar("00D0",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=.5w+noise;
x5=.5w+noise;
w-x4=good.x(1.5u+s+noise);
x6=eps+noise;
x7=.5w+noise;
bot y1=noise;
bot y5=noise;
top y2=h+noise;
top y3=h+noise;
y4=barheight+noise;
y6=barheight+noise;
y7=barheight+noise;
draw z1--z2--z3
 & half(z3,z3-z2,z4,-randup,z5,z1-z5)
 & z5--cycle;
draw z6--z7;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("E",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho-xgap+noise;
x6=w-leftstemloc+ho+noise;
x7=.9[x1,x6];
bot y1=noise;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
y5=barheight+noise;
bot y7=0;
z2=whatever[z1,z3];
z6=whatever[z1,z7];
draw z6--z1--z2--z5; 
draw z2--z3--z4; 
charanchortops_[charepscode]=(.5[leftstemloc,w-leftstemloc+o],h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z7;
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("F",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho-xgap+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
y5=barheight+noise;
z2=whatever[z1,z3];
draw z1--z2--z5;
draw z2--z3--z4; 
labels(1,2,3,4,5); 
endchar;

ffmchar("G",14,ht#,0);
italcorr ht#*slant;
x3=good.x(1.5u+s+noise);
x1=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
x6=w-leftstemloc+noise;
x2=.55w+noise;
x4=.55w+noise;
x7=.55w+noise;
y3=barheight+noise;
y6=barheight+noise;
y7=barheight+noise;
top y2=h+noise; 
top y1=h+noise; 
bot y4=noise;
bot y5=noise;
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5--z6--z7;
charanchortops_[charepscode]=(.5w,h);
charanchorcedillas_[charepscode]=z4;
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("H",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise;
w-x3=leftstemloc+noise;
w-x4=leftstemloc+noise;
bot y1=noise-o;
top y2=h+o+noise; 
bot y3=noise-o;
top y4=h+o+noise; 
y5=barheight+noise;
y6=barheight+noise;
z5=whatever[z1,z2];
z6=whatever[z3,z4];
draw z1--z5--z6--z3; 
draw z5--z2; 
draw z6--z4;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5,6); 
endchar;

ffmchar("I",6,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=.5w+noise;
bot y1=noise-o;
top y2=h+o+noise; 
draw z1--z2; 
charanchortops_[charepscode]=(.5w+noise,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z1;
labels(1,2); 
endchar;

ffmchar("J",9,ht#,0);
italcorr .8ht#*slant;
lft x1=noise-eps;
x2=x1+.5u;
w-x3=leftstemloc+noise; 
w-x4=leftstemloc+noise; 
bot y1=noise-o;
y3=barheight+noise;
top y4=h+noise;
z2=z1+whatever*randrt;
draw z1--z2
 & arc(z2,randrt,z3,z4-z3)
 & z3--z4; 
charanchortops_[charepscode]=(x4,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4); 
endchar;

ffmchar("K",13,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise; 
w-x5=good.x(1.5u+s+noise);
w-x6=good.x(1.5u+s+noise);
bot y1=noise-o; 
bot y6=noise-o; 
top y2=h+o+noise;
top y5=h+o+noise;
y3=.618[y2,y1]+noise; 
z3=whatever[z1,z2];
z4=whatever[z3,z5]=whatever[z2,z6];
draw z1--z2; 
draw z3--z5; 
draw z4--z6;
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z6;
labels(1,2,3,4,5,6); 
endchar;

ffmchar("L",12,ht#,0);
x1=leftstemloc+noise;
x2=leftstemloc+noise;
rt x3=w-eps+noise;
bot y1=noise; 
bot y3=noise; 
top y2=h+noise;
draw z3--z1--z2;
charanchortops_[charepscode]=(leftstemloc,h);
charanchortoprights_[charepscode]=(.618w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3); 
endchar;

% Lslash
ffmchar("0141",13,ht#,0);
x1=leftstemloc+noise;
x2=leftstemloc+noise;
w-x3=leftstemloc-ho+noise;
lft x4=eps+noise;
x5=.45w+noise;
bot y1=noise; 
bot y3=noise; 
top y2=h+noise;
y4=.4h+noise;
z5=z4+whatever*dir(40);
draw z3--z1--z2;
draw z4--z5;
charanchortops_[charepscode]=(leftstemloc,h);
charanchortoprights_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

ffmchar("M",18,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=.5w+noise;
x4=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
bot y1=noise-o;
top y2=h+o+noise;
bot y3=ygap-o+noise;
top y4=h+o+noise;
bot y5=noise-o;
draw z1--z2--z3--z4--z5; 
labels(1,2,3,4,5); 
endchar;

ffmchar("N",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x4=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
bot y1=noise-o;
top y2=h+o+noise;
y3=y4+ygap+noise;
bot y4=noise-o;
top y5=h+o+noise;
z3=whatever[z4,z5];
draw z1--z2--z3; 
draw z4--z5; 
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5); 
endchar;

% Eng
ffmchar("014A",15,ht#,acc_depth#);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x4=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
x6=.5w+noise;
x7=.382w+noise;
bot y1=noise-o;
top y2=h+o+noise;
y3=y4+ygap+noise;
bot y4=noise-o;
top y5=h+o+noise;
bot y6=noise-d;
z7=z6+whatever*randrt;
z3=whatever[z4,z5];
draw z1--z2--z3; 
draw z7--z6 
 & arc(z6,z6-z7,z4,z5-z4) 
 & z4--z5; 
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("O",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4); 
endchar;

% Oslash
ffmchar("00D8",15,ht#,0);
italcorr ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise; 
w-x4=good.x(1.5u+s+noise);  
x5=good.x(1.5u+s+noise);
w-x6=good.x(1.5u+s+noise);  
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
bot y5=noise-o;
top y6=h+o+noise;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

% OE
ffmchar("0152",22,ht#,0);
italcorr .9ht#*slant;
x2=.5w+noise;
x4=good.x(1.5u+s+noise);
x6=.5w+noise;
x7=w-leftstemloc+o+noise;
x9=w-leftstemloc+o-xgap+noise;
x1=w-leftstemloc+o+noise;
x3=.382w+noise;
x5=.382w+noise;
y4=barheight+noise;
y8=barheight+noise;
top y7=h+noise;
y9=barheight+noise;
bot y1=noise;
bot y3=noise;
top y5=h+noise;
z2=whatever[z1,z3];
z6=whatever[z5,z7];
z8=whatever[z2,z6];
draw z1--z3
 & half(z3,z3-z1,z4,randup,z5,z7-z5)
 & z5--z7;
draw z2--z8--z9;
draw z6--z8;
labels(1,2,3,4,5,6,7,8,9); 
endchar;

ffmchar("P",14,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=.618[x1,w-x1]+noise;
x5=.618[x1,w-x1]+noise;
x6=.5[w-x1,lft w]+noise; 
y2=barheight+noise;
y5=barheight+noise;
bot y1=noise-o;
top y3=h+noise; 
top y4=h+noise; 
y6=.5[y4,y5]+noise;
z2=whatever[z1,z3];
draw z1--z3--z4
 & half(z4,z4-z3,z6,-randup,z5,z2-z5)
 & z5 -- z2;
labels(1,2,3,4,5,6); 
endchar;

% Thorn
ffmchar("00DE",14,ht#,0);
italcorr .7ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x4=.618[x1,w-x1]+noise;
x5=.618[x1,w-x1]+noise;
x6=.5[w-x1,lft w]+noise; 
bot y1=noise-o;
top y2=h+noise; 
y3=.764h+noise; 
y4=.764h+noise; 
y6=.5[y4,y5]+noise;
y5=.382h+noise;
y7=.382h+noise;
z3=whatever[z1,z2];
z7=whatever[z1,z2];
draw z1--z2;
draw z3--z4
 & half(z4,z4-z3,z6,-randup,z5,z7-z5)
 & z5--z7;
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("Q",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise; 
w-x4=good.x(1.5u+s+noise);  
x5=min(.618[x4,x3],x4-2px)+noise;
w-x6=good.x(1.5u+s+noise);  
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
y5=.618[y3,y4]+noise;
bot y6=noise-o;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
labels(1,2,3,4,5,6); 
endchar;

ffmchar("R",14,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=.618[x1,w-x1]+noise;
x6=.618[x1,w-x1]+noise;
x5=.5[w-x1,lft w]+noise; 
x7=.5[w-x1,lft w]+noise; 
y2=barheight+noise;
y6=barheight+noise;
bot y1=noise-o;
bot y7=noise-o;
top y3=h+noise; 
top y4=h+noise; 
y5=.5[y4,y6]+noise;
z2=whatever[z1,z3];
draw z1--z3--z4
 & half(z4,z4-z3,z5,-randup,z6,z2-z6)
 & z6--z2;
draw z6--z7;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("S",14,ht#,0);
italcorr .8ht#*slant;
x3=good.x(2u+s+noise);
x8=good.x(2u+s+noise);
w-x1=good.x(3u+s+noise);
x2=.382[x3,x1]+noise;
x4=.382[x3,x1]+noise;
x5=.9[x3,x1]+noise;
x7=.9[x3,x1]+noise;
w-x6=good.x(1.75u+.5s+noise);
x9=.618[x8,x7];
top y1=h+noise; 
top y2=h+noise; 
y3=.6[y2,y4]+noise; 
y4=barheight+noise; 
y5=barheight+noise; 
y6=.3[y5,y7]+noise; 
bot y9=0;
z7=z9+whatever*randrt;
z8=whatever[z7,z9];
draw z1--z2 
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5 
 & half(z5,z5-z4,z6,-randup,z7,z8-z7) 
 & z7--z8;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z9;
labels(1,2,3,4,5,6,7,8,9); 
endchar;

% Germandbls
ffmchar("1E9E",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise; 
x3=.5w+noise; 
x5=.5w+noise; 
x7=.5w+noise; 
w-x4=leftstemloc+noise; 
w-x6=good.x(1.5u+s+noise);
x8=.4w+noise; 
bot y1=noise-o;
bot y8=noise;
y2=barheight+noise;
top y3=h+o+noise;
y5=barheight+noise;
y4=.5[y5,y3]+noise;
y6=.5[y7,y5]+noise;
z7=z8+whatever*randrt;
pair randira,randirb;
randira:=randrt;
randirb:=randrt;
draw z1--z2
 & arc(z2,randup,z3,randira)
 & half(z3,randira,z4,-randup,z5,-randirb);
draw half(z5,randirb,z6,-randup,z7,z8-z7)
 & z7--z8;
labels(1,2,3,4,5,6,7,8); 
endchar;

ffmchar("T",13,ht#,0);
italcorr ht#*slant+.5u#;
if .5w<>good.x .5w: change_width; fi
lft x1=noise-eps;
rt x2=w+noise;
x3=.5w+noise;
x4=.5w+noise;
top y1=h+noise;
top y2=h+noise;
bot y4=noise-o;
z3=whatever[z1,z2];
draw z1--z2; 
draw z3--z4; 
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(x4,0);
labels(1,2,3,4); 
endchar;

ffmchar("U",15,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise; 
w-x4=leftstemloc+noise; 
w-x5=leftstemloc+noise; 
x3=.5[x1,x4]+noise;
top y1=h+o+noise;
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
top y5=h+o+noise;
draw z1--z2
 & half(z2,z2-z1,z3,randrt,z4,z5-z4)
 & z4--z5; 
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z3;
labels(1,2,3,4,5); 
endchar;

ffmchar("V",13,ht#,0);
italcorr ht#*slant;
x1=good.x(1.5u+s+noise)-ho;
w-x3=good.x(1.5u+s+noise)-ho;
x2=.5[x1,x3]+noise;
top y1=h+o+noise;
bot y2=noise-o;
top y3=h+o+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

ffmchar("W",20,ht#,0);
italcorr ht#*slant;
x1=good.x(1.5u+s+noise)-ho;
w-x5=good.x(1.5u+s+noise)-ho;
x3=.5[x1,x5]+noise;
top y1=h+o+noise;
bot y2=noise-o;
y3=y1-ygap+noise;
bot y4=noise-o;
top y5=h+o+noise;
z4=z5+whatever*(x5-x1,4*(y1-y2)-2ygap);
z2=z1+whatever*(x1-x5,4*(y1-y2)-2ygap);
draw z1--z2--z3;
draw z3--z4--z5;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

ffmchar("X",13,ht#,0);
italcorr ht#*slant;
x1=good.x(1.5u+s+noise);
x3=good.x(1.5u+s+noise);
w-x2=good.x(1.5u+s+noise);
w-x4=good.x(1.5u+s+noise);
top y1=h+o+noise;
top y4=h+o+noise;
bot y3=noise-o;
bot y2=noise-o;
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

ffmchar("Y",15.5,ht#,0); 
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+.5noise; 
w-x4=leftstemloc+.5noise; 
w-x5=leftstemloc+noise; 
x3=.5[x1,x5]+noise;
x6=.5[x1,x5]+noise;
top y1=h+o+noise;
top y5=h+o+noise;
bot y6=noise-o; 
y3=barheight+noise;
y2=.618[y3,y5]+noise;
y4=.618[y3,y5]+noise;
draw z1--z2
 & half(z2,z2-z1,z3,randrt,z4,z5-z4)
 & z4--z5;
draw z6--z3;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

ffmchar("Z",15,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise;
w-x2=leftstemloc+noise; 
x3=leftstemloc+noise;
w-x4=leftstemloc+noise; 
top y1=h+noise; 
top y2=h+noise;
bot y3=noise;
bot y4=noise;
draw z1--z2--z3--z4;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4); 
endchar;

%IJ
ffmchainedchar("0132","I","J",0);

% Aacute
ffmcombinedchar("00C1","A","00B4","top",ht#+acc_ht#,0);

% Agrave
ffmcombinedchar("00C0","A","0060","top",ht#+acc_ht#,0);

% Adieresis
ffmcombinedchar("00C4","A","00A8","top",ht#+acc_ht#,0);

% Acircumflex
ffmcombinedchar("00C2","A","02C6","top",ht#+acc_ht#,0);

% Atilde
ffmcombinedchar("00C3","A","02DC","top",ht#+acc_ht#,0);

% Aring
ffmcombinedchar("00C5","A","02DA","top",ht#+acc_ht#,0);

% Amacron
ffmcombinedchar("0100","A","00AF","top",ht#+acc_ht#,0);

% Abreve
ffmcombinedchar("0102","A","02D8","top",ht#+acc_ht#,0);

% Aogonek
ffmcombinedchar("0104","A","02DB","cedilla",ht#,acc_depth#);

% Adotbelow
ffmcombinedchar("1EA0","A","0323","bot",ht#,acc_depth#);

% AEacute
ffmcombinedchar("01FC","00C6","00B4","top",ht#+acc_ht#,0);

% Cacute
ffmcombinedchar("0106","C","00B4","top",ht#+acc_ht#,0);

% Ccaron
ffmcombinedchar("010C","C","02C7","top",ht#+acc_ht#,0);

% Ccedilla
ffmcombinedchar("00C7","C","00B8","cedilla",ht#,acc_depth#);

% Ccircumflex
ffmcombinedchar("0108","C","02C6","top",ht#+acc_ht#,0);

% Cdotaccent
ffmcombinedchar("010A","C","02D9","top",ht#+acc_ht#,0);

% Dcaron
ffmcombinedchar("010E","D","02C7","top",ht#+acc_ht#,0);

% Dcroat
ffmcopiedchar("0110","00D0");

% Eacute
ffmcombinedchar("00C9","E","00B4","top",ht#+acc_ht#,0);

% Egrave
ffmcombinedchar("00C8","E","0060","top",ht#+acc_ht#,0);

% Edieresis
ffmcombinedchar("00CB","E","00A8","top",ht#+acc_ht#,0);

% Ecircumflex
ffmcombinedchar("00Ca","E","02C6","top",ht#+acc_ht#,0);

% Ecaron
ffmcombinedchar("011A","E","02C7","top",ht#+acc_ht#,0);

% Eogonek
ffmcombinedchar("0118","E","02DB","cedilla",ht#,acc_depth#);

% Emacron
ffmcombinedchar("0112","E","00AF","top",ht#+acc_ht#,0);

% Ebreve
ffmcombinedchar("0114","E","02D8","top",ht#+acc_ht#,0);

% Edotaccent
ffmcombinedchar("0116","E","02D9","top",ht#+acc_ht#,0);

% Etilde
ffmcombinedchar("1EBC","E","02DC","top",ht#+acc_ht#,0);

% Edotbelow
ffmcombinedchar("1EB8","E","0323","bot",ht#,acc_depth#);

% Gcircumflex
ffmcombinedchar("011C","G","02C6","top",ht#+acc_ht#,0);

% Gbreve
ffmcombinedchar("011E","G","02D8","top",ht#+acc_ht#,0);

% Gdotaccent
ffmcombinedchar("0120","G","02D9","top",ht#+acc_ht#,0);

% Gcedilla
ffmcombinedchar("0122","G","00B8","cedilla",ht#,acc_depth#);

% Gcaron
ffmcombinedchar("01E6","G","02C7","top",ht#+acc_ht#,0);

% Hcircumflex
ffmcombinedchar("0124","H","02C6","top",ht#+acc_ht#,0);

% Iacute
ffmcombinedchar("00CD","I","00B4","top",ht#+acc_ht#,0);

% Igrave
ffmcombinedchar("00CC","I","0060","top",ht#+acc_ht#,0);

% Idieresis
ffmcombinedchar("00CF","I","00A8","top",ht#+acc_ht#,0);

% Icircumflex
ffmcombinedchar("00CE","I","02C6","top",ht#+acc_ht#,0);

% Idotaccent
ffmcombinedchar("0130","I","02D9","top",ht#+acc_ht#,0);

% Itilde
ffmcombinedchar("0128","I","02DC","top",ht#+acc_ht#,0);

% Imacron
ffmcombinedchar("012A","I","00AF","top",ht#+acc_ht#,0);

% Ibreve
ffmcombinedchar("012C","I","02D8","top",ht#+acc_ht#,0);

% Iogonek
ffmcombinedchar("012E","I","02DB","cedilla",ht#,acc_depth#);

% Idotbelow
ffmcombinedchar("1ECA","I","0323","bot",ht#,acc_depth#);

% Jcircumflex
ffmcombinedchar("0134","J","02C6","top",ht#+acc_ht#,0);

% Kcedilla
ffmcombinedchar("0136","K","0326","bot",ht#,acc_depth#);

% Lacute
ffmcombinedchar("0139","L","00B4","top",ht#+acc_ht#,0);

% Lcaron
ffmcombinedchar("013D","L","2019","topright",ht#+acc_ht#,0);

% Lcedilla
ffmcombinedchar("013B","L","0326","bot",ht#,acc_depth#);

% Ldot
ffmchainedchar("013F","L","00B7",-5);

% Nacute
ffmcombinedchar("0143","N","00B4","top",ht#+acc_ht#,0);

% Ntilde
ffmcombinedchar("00D1","N","02DC","top",ht#+acc_ht#,0);

% Ncaron
ffmcombinedchar("0147","N","02C7","top",ht#+acc_ht#,0);

% Ncedilla
ffmcombinedchar("0145","N","0326","bot",ht#,acc_depth#);

% Oacute
ffmcombinedchar("00D3","O","00B4","top",ht#+acc_ht#,0);

% Ograve
ffmcombinedchar("00D2","O","0060","top",ht#+acc_ht#,0);

% Odieresis
ffmcombinedchar("00D6","O","00A8","top",ht#+acc_ht#,0);

% Ocircumflex
ffmcombinedchar("00D4","O","02C6","top",ht#+acc_ht#,0);

% Otilde
ffmcombinedchar("00D5","O","02DC","top",ht#+acc_ht#,0);

% Ohungarumlaut
ffmcombinedchar("0150","O","02DD","top",ht#+acc_ht#,0);

% Omacron
ffmcombinedchar("014C","O","00AF","top",ht#+acc_ht#,0);

% Obreve
ffmcombinedchar("014E","O","02D8","top",ht#+acc_ht#,0);

% Odotbelow
ffmcombinedchar("1ECC","O","0323","bot",ht#,acc_depth#);

% Oslashacute
ffmcombinedchar("01FE","00D8","00B4","top",ht#+acc_ht#,0);

% Racute
ffmcombinedchar("0154","R","00B4","top",ht#+acc_ht#,0);

% Rcaron
ffmcombinedchar("0158","R","02C7","top",ht#+acc_ht#,0);

% Rcedilla
ffmcombinedchar("0156","R","0326","bot",ht#,acc_depth#);

% Sacute
ffmcombinedchar("015A","S","00B4","top",ht#+acc_ht#,0);

% Scaron
ffmcombinedchar("0160","S","02C7","top",ht#+acc_ht#,0);

% Scedilla
ffmcombinedchar("015E","S","00B8","cedilla",ht#,acc_depth#);

% Scircumflex
ffmcombinedchar("015C","S","02C6","top",ht#+acc_ht#,0);

% Scommaaccent
ffmcombinedchar("0218","S","0326","bot",ht#,acc_depth#);

% Tcaron
ffmcombinedchar("0164","T","02C7","top",ht#+acc_ht#,0);

% Tcommaaccent
ffmcombinedchar("021A","T","0326","bot",ht#,acc_depth#);

% Tcedilla
ffmcopiedchar("0162","021A");

% Uacute
ffmcombinedchar("00DA","U","00B4","top",ht#+acc_ht#,0);

% Ugrave
ffmcombinedchar("00D9","U","0060","top",ht#+acc_ht#,0);

% Udieresis
ffmcombinedchar("00DC","U","00A8","top",ht#+acc_ht#,0);

% Ucircumflex
ffmcombinedchar("00DB","U","02C6","top",ht#+acc_ht#,0);

% Uhungarumlaut
ffmcombinedchar("0170","U","02DD","top",ht#+acc_ht#,0);

% Uring
ffmcombinedchar("016E","U","02DA","top",ht#+acc_ht#,0);

% Utilde
ffmcombinedchar("0168","U","02DC","top",ht#+acc_ht#,0);

% Umacron
ffmcombinedchar("016A","U","00AF","top",ht#+acc_ht#,0);

% Ubreve
ffmcombinedchar("016C","U","02D8","top",ht#+acc_ht#,0);

% Uogonek
ffmcombinedchar("0172","U","02DB","cedilla",ht#,acc_depth#);

% Udotbelow
ffmcombinedchar("1EE4","U","0323","bot",ht#,acc_depth#);

% Wcircumflex
ffmcombinedchar("0174","W","02C6","top",ht#+acc_ht#,0);

% Wgrave
ffmcombinedchar("1E80","W","0060","top",ht#+acc_ht#,0);

% Wacute
ffmcombinedchar("1E82","W","00B4","top",ht#+acc_ht#,0);

% Wdieresis
ffmcombinedchar("1E84","W","00A8","top",ht#+acc_ht#,0);

% Yacute
ffmcombinedchar("00DD","Y","00B4","top",ht#+acc_ht#,0);

% Ydieresis
ffmcombinedchar("0178","Y","00A8","top",ht#+acc_ht#,0);

% Ycircumflex
ffmcombinedchar("0176","Y","02C6","top",ht#+acc_ht#,0);

% Ygrave
ffmcombinedchar("1EF2","Y","0060","top",ht#+acc_ht#,0);

% Ytilde
ffmcombinedchar("1EF8","Y","02DC","top",ht#+acc_ht#,0);

% Ymacron
ffmcombinedchar("0232","Y","00AF","top",ht#+acc_ht#,0);

% Zacute
ffmcombinedchar("0179","Z","00B4","top",ht#+acc_ht#,0);

% Zcaron
ffmcombinedchar("017D","Z","02C7","top",ht#+acc_ht#,0);

% Zdotaccent
ffmcombinedchar("017B","Z","02D9","top",ht#+acc_ht#,0);

%------Greek uppercase-------

% Alpha
ffmcopiedchar("0391","A");

% Beta
ffmcopiedchar("0392","B");

% Gamma
ffmchar("0393",12,ht#,0);
italcorr ht#*slant+.5u#;
if .5w<>good.x .5w: change_width; fi
x1=leftstemloc+noise;
x2=leftstemloc+noise;
rt x3=w+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% Delta
ffmchar("0394",15,ht#,0);
italcorr .9ht#*slant;
x1=good.x(1.5u+s+noise);
w-x2=good.x(1.5u+s+noise);
x3=.5w+noise;
bot y1=noise;
bot y2=noise;
top y3=h+o+noise;
draw z1--z2--z3--cycle;
labels(1,2,3); 
endchar;

% Epsilon
ffmcopiedchar("0395","E");

% Zeta
ffmcopiedchar("0396","Z");

% Eta
ffmcopiedchar("0397","H");

% Theta
ffmchar("0398",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
lft x5=max(rt x2+2u,.35w)+noise;
rt x6=min(lft x4-2u,.65w)+noise;
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
y5=barheight+noise;
y6=barheight+noise;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

% Iota
ffmcopiedchar("0399","I");

% Kappa
ffmcopiedchar("039A","K");

% Lambda
ffmchar("039B",13,ht#,0);
italcorr .9ht#*slant;
x1=good.x(1.5u+s+noise);
w-x2=good.x(1.5u+s+noise);
x3=.5w+noise;
bot y1=noise-o;
bot y2=noise-o;
top y3=h+o+noise;
draw z1--z3--z2;
labels(1,2,3); 
endchar;

% Mu
ffmcopiedchar("039C","M");

% Nu
ffmcopiedchar("039D","N");

% Xi
ffmchar("039E",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise;
w-x3=leftstemloc+noise;
w-x4=leftstemloc+noise;
x5=.3w+noise;
x6=.7w+noise;
bot y1=noise;
top y2=h+noise; 
bot y3=noise;
top y4=h+noise; 
y5=barheight+noise;
y6=barheight+noise;
draw z1--z3;
draw z2--z4;
draw z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% Omicron
ffmcopiedchar("039F","O");

% Pi
ffmchar("03A0",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=w-leftstemloc+ho+noise;
x4=w-leftstemloc+ho+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
bot y4=noise-o;
draw z1--z2--z3--z4;
labels(1,2,3,4); 
endchar;

% Rho
ffmcopiedchar("03A1","P");

% Sigma
ffmchar("03A3",14,ht#,0);
italcorr .9ht#*slant;
x1=good.x(1.5u+s+noise);
x2=.5[x1,x5];
x3=good.x(1.5u+s+noise);
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho+noise;
bot y1=noise;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
bot y5=0;
draw z5--z1--z2--z3--z4;
charanchortops_[charepscode]=(.5[leftstemloc,w-leftstemloc+o],h);
labels(1,2,3,4,5); 
endchar;

% Tau
ffmcopiedchar("03A4","T");

% Upsilon
ffmcopiedchar("03A5","Y");

% Phi
ffmchar("03A6",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
top y1=.85h+o+noise; 
y2=barheight+noise;
bot y3=.15h-o+noise;
y4=barheight+noise;
bot y5=noise-o;
top y6=h+o+noise; 
z5=whatever[z1,z3];
z6=whatever[z1,z3];
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

% Xi
ffmcopiedchar("03A7","X");

% Psi
ffmchar("03A8",18,ht#,0); 
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+.5noise; 
w-x4=leftstemloc+.5noise; 
w-x5=leftstemloc+noise; 
x3=.5[x1,x5]+noise;
x6=.5[x1,x5]+noise;
top y1=h+o+noise;
top y5=h+o+noise;
bot y6=noise-o; 
top y7=h+o+noise;
y3=barheight+noise;
y2=.618[y3,y5]+noise;
y4=.618[y3,y5]+noise;
z7=whatever[z6,z3];
draw z1--z2
 & half(z2,z2-z1,z3,randrt,z4,z5-z4)
 & z4--z5;
draw z6--z7;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7); 
endchar;

% Omega
ffmchar("03A9",15,ht#,0);
italcorr .8ht#*slant;
x1=good.x(1.5u+s+noise);
lft x8-rt x2=2.5u+noise;
.5[x2,x8]=.5w;
x4=good.x(1.5u+s+noise);
x5=.5w+noise;
w-x6=good.x(1.5u+s+noise);  
w-x9=good.x(1.5u+s+noise);
lft x7-rt x3=2.5u+noise;
.5[x3,x7]=.5w;
bot y1=noise;
bot y2=noise;
bot y3=max(top y2+eps,.15h+noise);
top y5=h+o+noise; 
y4=.4[y3,y5]+noise;
y6=.4[y7,y5]+noise;
bot y8=noise;
bot y7=max(top y8+eps,.15h+noise);
bot y9=noise;
pair randdir;
randdir:=randrt;
draw z1--z2--z3
 & half(z3,-randrt,z4,randup,z5,randdir)
 & half(z5,randdir,z6,-randup,z7,-randrt)
 & z7--z8--z9;
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5,6,7,8,9); 
endchar;

% Digamma
ffmchar("03DC",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho-xgap+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
y5=barheight+noise;
z2=whatever[z1,z3];
draw z1--z2--z5;
draw z2--z3--z4; 
labels(1,2,3,4,5); 
endchar;

% Schwa
ffmchar("018F",13,ht#,0);
italcorr .8ht#*slant;
w-x1=good.x(1.5u+s+noise);  
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
x4=.5w+noise;
x5=.2[x2,x1];
y1=barheight+noise;
y2=barheight+noise;
bot y3=noise-o;
top y4=h+noise; 
top y5=h+noise; 
pair randir;
randir:=randup;
draw z1--z2
 & half(z2,-randup,z3,randrt,z1,randir)
 & arc(z1,randir,z4,z5-z4)
 & z4--z5;
labels(1,2,3,4,5); 
endchar;

% Archaic Koppa
ffmchar("03D8",15,ht#,acc_depth#); 
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
x5=.5w+noise;
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
bot y5=noise-d;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z3--z5;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

% Sampi
ffmchar("03E0",14,ht#,0);
italcorr ht#*slant;
lft x1=rt x3+noise;
w-x2=good.x(1.5u+s-ho)+noise;
x3=good.x(1.5u+s-ho)+noise;
x5=.4[x3,x2];
top y1=h+o+noise; 
bot y2=noise-o;
bot y3=noise-o;
y4=.8h;
bot y5=noise-o;
z4=whatever[z1,z2];
z6=whatever[z1,z2]=z5+(noise,noise)+whatever*(z4-z3);
draw z1--z2;
draw z3--z4;
draw z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% Stigma variant
ffmchar("E001",20,ht#,0);
italcorr ht#*slant+.5u#;
x1=w-leftstemloc+ho+noise;
x2=.4w+noise;
x3=good.x(1.5u+s+noise);
x4=.4w+noise;
x5=.6w+noise;
x6=.6w+noise;
top y1=h+noise;
top y2=h+noise;  
y3=barheight+noise;
bot y4=0; %no noise!
z5=z4+whatever*randrt;
z6=whatever[z1,z2];
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5--z6;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=z4;
labels(1,2,3,4,5,6); 
endchar;

% acrophonic attic fifty
ffmchar("10144",17,ht#,0);
%message decimal(hex("10144"));
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=w-leftstemloc+ho+noise;
x4=w-leftstemloc+ho+noise;
x5=.5[x2,x3]+noise;
lft x6=.1[rt x2,lft x3]+noise;
rt x7=.9[rt x2,lft x3]+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
y4=.3h+noise;
top y5=bot y2-.1h+noise;
y6=.3h+noise;
y7=.3h+noise;
draw z1--z2--z3--z4;
draw z5--z6--z7--cycle;
labels(1,2,3,4,5,6,7); 
endchar;

% acrophonic attic five hundred
ffmchar("10145",17,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=w-leftstemloc+ho+noise;
x4=w-leftstemloc+ho+noise;
lft x5=.15[rt x2,lft x3]+noise;
lft x6=.15[rt x2,lft x3]+noise;
rt x7=.85[rt x2,lft x3]+noise;
rt x8=.85[rt x2,lft x3]+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
y4=.3h+noise;
y5=.3h+noise;
top y6=bot y2-.1h+noise;
top y7=bot y2-.1h+noise;
y8=.3h+noise;
y9=.5[y5,y6];
y10=.5[y9,y10];
z9=whatever[z5,z6];
z10=whatever[z7,z8];
draw z1--z2--z3--z4;
draw z5--z6;
draw z7--z8;
draw z9--z10;
labels(1,2,3,4,5,6,7,8,9,10); 
endchar;

% acrophonic attic five thousand
ffmchar("10146",17,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=w-leftstemloc+ho+noise;
x4=w-leftstemloc+ho+noise;
lft x5=.15[rt x2,lft x3]+noise;
lft x6=.15[rt x2,lft x3]+noise;
rt x7=.85[rt x2,lft x3]+noise;
rt x8=.85[rt x2,lft x3]+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
y4=.3h+noise;
y5=.3h+noise;
top y6=bot y2-.1h+noise;
top y7=bot y2-.1h+noise;
y8=.3h+noise;
draw z1--z2--z3--z4;
draw z5--z7;
draw z6--z8;
labels(1,2,3,4,5,6,7,8); 
endchar;

% acrophonic attic fifty thousand
ffmchar("10147",17,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=w-leftstemloc+ho+noise;
x4=w-leftstemloc+ho+noise;
lft x5=.1[rt x2,lft x3]+noise;
lft x6=.1[rt x2,lft x3]+noise;
x7=.5[x6,x8]+noise;
rt x8=.9[rt x2,lft x3]+noise;
rt x9=.9[rt x2,lft x3]+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
y4=.3h+noise;
y5=.3h+noise;
top y6=bot y2-.1h+noise;
y7=.3[y5,y6]+noise;
top y8=bot y2-.1h+noise;
y9=.3h+noise;
draw z1--z2--z3--z4;
draw z5--z6--z7--z8--z9;
labels(1,2,3,4,5,6,7,8,9); 
endchar;

% Alpha with prosgegrammeni
ffmcombinedchar("1FBC","0391","1FBE","bot",ht#,comma_depth#);

% Alpha with tonos
ffmchainedchar("0386","0384","0391",-2);

% Alpha with psili
ffmchainedchar("1F08","1FBF","0391",-2);

% Alpha with dasia
ffmchainedchar("1F09","1FFE","0391",-1);

% Alpha with psili and varia
ffmchainedchar("1F0A","1FCD","0391",-1);

% Alpha with dasia and varia
ffmchainedchar("1F0B","1FDD","0391",-1);

% Alpha with psili and oxia
ffmchainedchar("1F0C","1FCE","0391",-2);

% Alpha with dasia and oxia
ffmchainedchar("1F0D","1FDE","0391",-2);

% Alpha with psili and perispomeni
ffmchainedchar("1F0E","1FCF","0391",-4);

% Alpha with dasia and perispomeni
ffmchainedchar("1F0F","1FDF","0391",-4);

% Alpha with psili and prosgegrammeni
ffmchainedchar("1F88","1FBF","1FBC",-2);

% Alpha with dasia and prosgegrammeni
ffmchainedchar("1F89","1FFE","1FBC",-1);

% Alpha with psili and varia and prosgegrammeni
ffmchainedchar("1F8A","1FCD","1FBC",-1);

% Alpha with dasia and varia and prosgegrammeni
ffmchainedchar("1F8B","1FDD","1FBC",-1);

% Alpha with psili and oxia and prosgegrammeni
ffmchainedchar("1F8C","1FCE","1FBC",-2);

% Alpha with dasia and oxia and prosgegrammeni
ffmchainedchar("1F8D","1FDE","1FBC",-2);

% Alpha with psili and perispomeni and prosgegrammeni
ffmchainedchar("1F8E","1FCF","1FBC",-4);

% Alpha with dasia and perispomeni and prosgegrammeni
ffmchainedchar("1F8F","1FDF","1FBC",-4);

% Alpha with vrachy
ffmcombinedchar("1FB8","0391","02D8","top",ht#+acc_ht#,0);

% Alpha with macron
ffmcombinedchar("1FB9","0391","00AF","top",ht#+acc_ht#,0);

% Alpha with varia
ffmchainedchar("1FBA","1FEF","0391",-1);

% Alpha with oxia
ffmcopiedchar("1FBB","0386");

% Eta with ypogegrammeni
ffmcombinedchar("1FCC","0397","1FBE","bot",ht#,comma_depth#);

% Eta with tonos
ffmchainedchar("0389","0384","0397",-1);

% Eta with psili
ffmchainedchar("1F28","1FBF","0397",0);

% Eta with dasia
ffmchainedchar("1F29","1FFE","0397",0);

% Eta with psili and varia
ffmchainedchar("1F2A","1FCD","0397",0);

% Eta with dasia and varia
ffmchainedchar("1F2B","1FDD","0397",0);

% Eta with psili and oxia
ffmchainedchar("1F2C","1FCE","0397",-1);

% Eta with dasia and oxia
ffmchainedchar("1F2D","1FDE","0397",-1);

% Eta with psili and perispomeni
ffmchainedchar("1F2E","1FCF","0397",-2);

% Eta with dasia and perispomeni
ffmchainedchar("1F2F","1FDF","0397",-2);

% Eta with psili and prosgegrammeni
ffmchainedchar("1F98","1FBF","1FCC",0);

% Eta with dasia and prosgegrammeni
ffmchainedchar("1F99","1FFE","1FCC",0);

% Eta with psili and varia and prosgegrammeni
ffmchainedchar("1F9A","1FCD","1FCC",0);

% Eta with dasia and varia and prosgegrammeni
ffmchainedchar("1F9B","1FDD","1FCC",0);

% Eta with psili and oxia and prosgegrammeni
ffmchainedchar("1F9C","1FCE","1FCC",-1);

% Eta with dasia and oxia and prosgegrammeni
ffmchainedchar("1F9D","1FDE","1FCC",-1);

% Eta with psili and perispomeni and prosgegrammeni
ffmchainedchar("1F9E","1FCF","1FCC",-2);

% Eta with dasia and perispomeni and prosgegrammeni
ffmchainedchar("1F9F","1FDF","1FCC",-2);

% Eta with varia
ffmchainedchar("1FCA","1FEF","0397",0);

% Eta with oxia
ffmcopiedchar("1FCB","0389");

% Omega with ypogegrammeni
ffmcombinedchar("1FFC","03A9","1FBE","bot",ht#,comma_depth#);

% Omega with tonos
ffmchainedchar("038F","0384","03A9",-1);

% Omega with psili
ffmchainedchar("1F68","1FBF","03A9",-1);

% Omega with dasia
ffmchainedchar("1F69","1FFE","03A9",0);

% Omega with psili and varia
ffmchainedchar("1F6A","1FCD","03A9",0);

% Omega with dasia and varia
ffmchainedchar("1F6B","1FDD","03A9",0);

% Omega with psili and oxia
ffmchainedchar("1F6C","1FCE","03A9",-1);

% Omega with dasia and oxia
ffmchainedchar("1F6D","1FDE","03A9",-1);

% Omega with psili and perispomeni
ffmchainedchar("1F6E","1FCF","03A9",-3);

% Omega with dasia and perispomeni
ffmchainedchar("1F6F","1FDF","03A9",-3);

% Omega with psili and prosgegrammeni
ffmchainedchar("1FA8","1FBF","1FFC",-1);

% Omega with dasia and prosgegrammeni
ffmchainedchar("1FA9","1FFE","1FFC",0);

% Omega with psili and varia and prosgegrammeni
ffmchainedchar("1FAA","1FCD","1FFC",0);

% Omega with dasia and varia and prosgegrammeni
ffmchainedchar("1FAB","1FDD","1FFC",0);

% Omega with psili and oxia and prosgegrammeni
ffmchainedchar("1FAC","1FCE","1FFC",-1);

% Omega with dasia and oxia and prosgegrammeni
ffmchainedchar("1FAD","1FDE","1FFC",-1);

% Omega with psili and perispomeni and prosgegrammeni
ffmchainedchar("1FAE","1FCF","1FFC",-3);

% Omega with dasia and perispomeni and prosgegrammeni
ffmchainedchar("1FAF","1FDF","1FFC",-3);

% Omega with varia
ffmchainedchar("1FFA","1FEF","03A9",0);

% Omega with oxia
ffmcopiedchar("1FFB","038F");

% Upsilon with dieresis
ffmcombinedchar("03AB","03A5","00A8","top",ht#+acc_ht#,0);

% Upsilon with tonos
ffmchainedchar("038E","0384","03A5",-1);

% Upsilon with dasia
ffmchainedchar("1F59","1FFE","03A5",0);

% Upsilon with dasia and varia
ffmchainedchar("1F5B","1FDD","03A5",0);

% Upsilon with dasia and oxia
ffmchainedchar("1F5D","1FDE","03A5",-1);

% Upsilon with dasia and perispomeni
ffmchainedchar("1F5F","1FDF","03A5",-2);

% Upsilon with vrachy
ffmcombinedchar("1FE8","03A5","02D8","top",ht#+acc_ht#,0);

% Upsilon with macron
ffmcombinedchar("1FE9","03A5","00AF","top",ht#+acc_ht#,0);

% Upsilon with varia
ffmchainedchar("1FEA","1FEF","03A5",0);

% Upsilon with oxia
ffmcopiedchar("1FEB","038E");

% Iota with dialytika
ffmcombinedchar("03AA","0399","00A8","top",ht#+acc_ht#,0);

% Iota with tonos
ffmchainedchar("038A","0384","0399",-1.5);

% Iota with psili
ffmchainedchar("1F38","1FBF","0399",0);

% Iota with dasia
ffmchainedchar("1F39","1FFE","0399",0);

% Iota with psili and varia
ffmchainedchar("1F3A","1FCD","0399",0);

% Iota with dasia and varia
ffmchainedchar("1F3B","1FDD","0399",0);

% Iota with psili and oxia
ffmchainedchar("1F3C","1FCE","0399",-1);

% Iota with dasia and oxia
ffmchainedchar("1F3D","1FDE","0399",-1);

% Iota with psili and perispomeni
ffmchainedchar("1F3E","1FCF","0399",-2);

% Iota with dasia and perispomeni
ffmchainedchar("1F3F","1FDF","0399",-2);

% Iota with varia
ffmchainedchar("1FDA","1FEF","0399",0);

% Iota with vrachy
ffmcombinedchar("1FD8","0399","02D8","top",ht#+acc_ht#,0);

% Iota with macron
ffmcombinedchar("1FD9","0399","00AF","top",ht#+acc_ht#,0);

% Iota with oxia
ffmcopiedchar("1FDB","038A");

% Epsilon with tonos
ffmchainedchar("0388","0384","0395",-1);

% Epsilon with psili
ffmchainedchar("1F18","1FBF","0395",0);

% Epsilon with dasia
ffmchainedchar("1F19","1FFE","0395",0);

% Epsilon with psili and varia
ffmchainedchar("1F1A","1FCD","0395",0);

% Epsilon with dasia and varia
ffmchainedchar("1F1B","1FDD","0395",0);

% Epsilon with psili and oxia
ffmchainedchar("1F1C","1FCE","0395",-1);

% Epsilon with dasia and oxia
ffmchainedchar("1F1D","1FDE","0395",-1);

% Epsilon with varia
ffmchainedchar("1FC8","1FEF","0395",0);

% Epsilon with oxia
ffmcopiedchar("1FC9","0388");

% Omicron with tonos
ffmchainedchar("038C","0384","039F",-1);

% Omicron with psili
ffmchainedchar("1F48","1FBF","039F",-1);

% Omicron with dasia
ffmchainedchar("1F49","1FFE","039F",0);

% Omicron with psili and varia
ffmchainedchar("1F4A","1FCD","039F",0);

% Omicron with dasia and varia
ffmchainedchar("1F4B","1FDD","039F",0);

% Omicron with psili and oxia
ffmchainedchar("1F4C","1FCE","039F",-1);

% Omicron with dasia and oxia
ffmchainedchar("1F4D","1FDE","039F",-1);

% Omicron with varia
ffmchainedchar("1FF8","1FEF","039F",0);

% Omicron with oxia
ffmcopiedchar("1FF9","038C");

% Rho with dasia
ffmchainedchar("1FEC","1FFE","03A1",0);

%------lowercase-------
old_ht#:=ht#;
old_barheight#:=barheight#;
ht#:=x_ht#;	% new characters height (for lowercase)
u#:=.9u#;   % new unit width
barheight#:=.5x_ht#;   % new height of bar lines (for lowercase)
define_pixels(u); 
define_good_y_pixels(barheight);

ffmchar("a",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise; 
x3=.5w+noise; 
w-x4=leftstemloc+noise;
w-x5=leftstemloc+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+o; %no noise because of Aring
y4=barheight+noise;
bot y5=noise-o;
bot y6=0; %no noise
z6=whatever[z4,z5];
draw z1--z2--z4--z5;
draw half(z2,z2-z1,z3,randrt,z4,z5-z4);
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z6;
labels(1,2,3,4,5,6); 
endchar;

% ae
ffmchar("00E6",22,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise;
x3=.5w+noise;
x4=.5w+noise;
x5=w-leftstemloc+o+noise;
x6=w-leftstemloc+o-xgap+noise;
x7=w-leftstemloc+o+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+noise;
bot y4=noise;
top y5=h+noise;
y6=barheight+noise;
bot y7=noise;
draw z1--z2--z6;
draw arc(z2,z2-z1,z3,z5-z3);
draw z5--z3--z4--z7;
charanchortops_[charepscode]=(x3,h);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("b",14,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise; 
x7=.5[w-x1,lft w]+noise;
x5=.85[x1,x7]+noise;
x8=.5[x1,x5]+noise;
x4=.4[x1,x5]+noise; 
x6=.4[x1,x5]+noise; 
bot y1=noise;
y2=barheight+noise;
top y3=h+noise; 
y4=y3+noise; 
y6=y2+.5noise;
bot y8=noise;
y5=.5[y4,y6]+noise; 
y7=.5[y6,y8]+noise;
z2=whatever[z1,z3];
z9=whatever[z2,z6];
draw z1--z3--z4
 & half(z4,z4-z3,z5,-randup,z6,z2-z6)
 & z6--z2; 
draw half(z6,z6-z2,z7,-randup,z8,z1-z8)
 & z8--z1;
labels(1,2,3,4,5,6,7,8); 
endchar;

ffmchar("c",14,ht#,0);
italcorr ht#*slant;
x1=w-leftstemloc+ho+noise;
x2=.55w+noise;
x3=good.x(1.5u+s+noise);
x4=.55w+noise;
x5=w-leftstemloc+ho+noise;
top y1=h+noise;
top y2=h+noise;  
y3=barheight+noise;
bot y4=0; %no noise!
z5=z4+whatever*randrt;
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z4;
labels(1,2,3,4,5); 
endchar;

ffmchar("d",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=.45w+noise;
x5=.45w+noise;
w-x4=good.x(1.5u+s+noise);
bot y1=noise;
bot y5=noise;
top y2=h+noise;
top y3=h+noise;
y4=barheight+noise;
draw z1--z2--z3
 & half(z3,z3-z2,z4,-randup,z5,z1-z5)
 & z5--cycle;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

% eth
ffmchar("00F0",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=.5w+noise;
x5=.5w+noise;
w-x4=good.x(1.5u+s+noise);
x6=eps+noise;
x7=.5w+noise;
bot y1=noise;
bot y5=noise;
top y2=h+noise;
top y3=h+noise;
y4=barheight+noise;
y6=barheight+noise;
y7=barheight+noise;
draw z1--z2--z3
 & half(z3,z3-z2,z4,-randup,z5,z1-z5)
 & z5--cycle;
draw z6--z7;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("e",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho-xgap+noise;
x6=w-leftstemloc+ho+noise;
x7=.9[x1,x6];
bot y1=noise;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
y5=barheight+noise;
bot y7=0;
z2=whatever[z1,z3];
z6=whatever[z1,z7];
draw z6--z1--z2--z5; 
draw z2--z3--z4; 
charanchortops_[charepscode]=(.5[leftstemloc,w-leftstemloc+o],h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z7;
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("f",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho-xgap+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
y5=barheight+noise;
z2=whatever[z1,z3];
draw z1--z2--z5;
draw z2--z3--z4; 
labels(1,2,3,4,5); 
endchar;

ffmchar("g",14,ht#,0);
italcorr ht#*slant;
x3=good.x(1.5u+s+noise);
x1=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
x6=w-leftstemloc+noise;
x2=.55w+noise;
x4=.55w+noise;
x7=.55w+noise;
y3=barheight+noise;
y6=barheight+noise;
y7=barheight+noise;
top y2=h+noise; 
top y1=h+noise; 
bot y4=noise;
bot y5=noise;
draw z1--z2
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5--z6--z7;
charanchortops_[charepscode]=(.5w,h);
charanchorcedillas_[charepscode]=z4;
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("h",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise;
w-x3=leftstemloc+noise;
w-x4=leftstemloc+noise;
bot y1=noise-o;
top y2=h+o+noise; 
bot y3=noise-o;
top y4=h+o+noise; 
y5=barheight+noise;
y6=barheight+noise;
z5=whatever[z1,z2];
z6=whatever[z3,z4];
draw z1--z5--z6--z3; 
draw z5--z2; 
draw z6--z4;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5,6); 
endchar;

ffmchar("i",6,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=.5w+noise;
bot y1=noise-o;
top y2=h+o+noise; 
draw z1--z2; 
charanchortops_[charepscode]=(.5w+noise,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z1;
labels(1,2); 
endchar;

ffmchar("j",9,ht#,0);
italcorr .8ht#*slant;
lft x1=noise-eps;
x2=x1+.5u;
w-x3=leftstemloc+noise; 
w-x4=leftstemloc+noise; 
bot y1=noise-o;
y3=barheight+noise;
top y4=h+noise;
z2=z1+whatever*randrt;
draw z1--z2
 & arc(z2,randrt,z3,z4-z3)
 & z3--z4; 
charanchortops_[charepscode]=(x4,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4); 
endchar;

ffmchar("k",13,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise; 
w-x5=good.x(1.5u+s+noise);
w-x6=good.x(1.5u+s+noise);
bot y1=noise-o; 
bot y6=noise-o; 
top y2=h+o+noise;
top y5=h+o+noise;
y3=.618[y2,y1]+noise; 
z3=whatever[z1,z2];
z4=whatever[z3,z5]=whatever[z2,z6];
draw z1--z2; 
draw z3--z5; 
draw z4--z6;
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z6;
labels(1,2,3,4,5,6); 
endchar;

ffmchar("l",12,ht#,0);
x1=leftstemloc+noise;
x2=leftstemloc+noise;
rt x3=w-eps+noise;
bot y1=noise; 
bot y3=noise; 
top y2=h+noise;
draw z3--z1--z2;
charanchortops_[charepscode]=(leftstemloc,h);
charanchortoprights_[charepscode]=(.618w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3); 
endchar;

% lslash
ffmchar("0142",13,ht#,0);
x1=leftstemloc+noise;
x2=leftstemloc+noise;
w-x3=leftstemloc-ho+noise;
lft x4=eps+noise;
x5=.45w+noise;
bot y1=noise; 
bot y3=noise; 
top y2=h+noise;
y4=.4h+noise;
z5=z4+whatever*dir(40);
draw z3--z1--z2;
draw z4--z5;
charanchortops_[charepscode]=(leftstemloc,h);
charanchortoprights_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

ffmchar("m",18,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=.5w+noise;
x4=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
bot y1=noise-o;
top y2=h+o+noise;
bot y3=ygap-o+noise;
top y4=h+o+noise;
bot y5=noise-o;
draw z1--z2--z3--z4--z5; 
labels(1,2,3,4,5); 
endchar;

ffmchar("n",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x4=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
bot y1=noise-o;
top y2=h+o+noise;
y3=y4+ygap+noise;
bot y4=noise-o;
top y5=h+o+noise;
z3=whatever[z4,z5];
draw z1--z2--z3; 
draw z4--z5; 
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5); 
endchar;

% eng
ffmchar("014B",15,ht#,acc_depth#);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x4=w-leftstemloc+noise;
x5=w-leftstemloc+noise;
x6=.5w+noise;
x7=.382w+noise;
bot y1=noise-o;
top y2=h+o+noise;
y3=y4+ygap+noise;
bot y4=noise-o;
top y5=h+o+noise;
bot y6=noise-d;
z7=z6+whatever*randrt;
z3=whatever[z4,z5];
draw z1--z2--z3; 
draw z7--z6 
 & arc(z6,z6-z7,z4,z5-z4) 
 & z4--z5; 
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("o",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4); 
endchar;

% oslash
ffmchar("00F8",15,ht#,0);
italcorr ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise; 
w-x4=good.x(1.5u+s+noise);  
x5=good.x(1.5u+s+noise);
w-x6=good.x(1.5u+s+noise);  
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
bot y5=noise-o;
top y6=h+o+noise;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

% oe
ffmchar("0153",22,ht#,0);
italcorr .9ht#*slant;
x2=.5w+noise;
x4=good.x(1.5u+s+noise);
x6=.5w+noise;
x7=w-leftstemloc+o+noise;
x9=w-leftstemloc+o-xgap+noise;
x1=w-leftstemloc+o+noise;
x3=.382w+noise;
x5=.382w+noise;
y4=barheight+noise;
y8=barheight+noise;
top y7=h+noise;
y9=barheight+noise;
bot y1=noise;
bot y3=noise;
top y5=h+noise;
z2=whatever[z1,z3];
z6=whatever[z5,z7];
z8=whatever[z2,z6];
draw z1--z3
 & half(z3,z3-z1,z4,randup,z5,z7-z5)
 & z5--z7;
draw z2--z8--z9;
draw z6--z8;
labels(1,2,3,4,5,6,7,8,9); 
endchar;

ffmchar("p",14,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=.618[x1,w-x1]+noise;
x5=.618[x1,w-x1]+noise;
x6=.5[w-x1,lft w]+noise; 
y2=barheight+noise;
y5=barheight+noise;
bot y1=noise-o;
top y3=h+noise; 
top y4=h+noise; 
y6=.5[y4,y5]+noise;
z2=whatever[z1,z3];
draw z1--z3--z4
 & half(z4,z4-z3,z6,-randup,z5,z2-z5)
 & z5 -- z2;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

% thorn
ffmchar("00FE",14,ht#,0);
italcorr .7ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x4=.618[x1,w-x1]+noise;
x5=.618[x1,w-x1]+noise;
x6=.5[w-x1,lft w]+noise; 
bot y1=noise-o;
top y2=h+noise; 
y3=.764h+noise; 
y4=.764h+noise; 
y6=.5[y4,y5]+noise;
y5=.382h+noise;
y7=.382h+noise;
z3=whatever[z1,z2];
z7=whatever[z1,z2];
draw z1--z2;
draw z3--z4
 & half(z4,z4-z3,z6,-randup,z5,z7-z5)
 & z5--z7;
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("q",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise; 
w-x4=good.x(1.5u+s+noise);  
x5=min(.618[x4,x3],x4-2px)+noise;
w-x6=good.x(1.5u+s+noise);  
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
y5=.618[y3,y4]+noise;
bot y6=noise-o;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
labels(1,2,3,4,5,6); 
endchar;

ffmchar("r",14,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=.618[x1,w-x1]+noise;
x6=.618[x1,w-x1]+noise;
x5=.5[w-x1,lft w]+noise; 
x7=.5[w-x1,lft w]+noise; 
y2=barheight+noise;
y6=barheight+noise;
bot y1=noise-o;
bot y7=noise-o;
top y3=h+noise; 
top y4=h+noise; 
y5=.5[y4,y6]+noise;
z2=whatever[z1,z3];
draw z1--z3--z4
 & half(z4,z4-z3,z5,-randup,z6,z2-z6)
 & z6--z2;
draw z6--z7;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5,6,7); 
endchar;

ffmchar("s",14,ht#,0);
italcorr .8ht#*slant;
x3=good.x(2u+s+noise);
x8=good.x(2u+s+noise);
w-x1=good.x(3u+s+noise);
x2=.382[x3,x1]+noise;
x4=.382[x3,x1]+noise;
x5=.9[x3,x1]+noise;
x7=.9[x3,x1]+noise;
w-x6=good.x(1.75u+.5s+noise);
x9=.618[x8,x7];
top y1=h+noise; 
top y2=h+noise; 
y3=.6[y2,y4]+noise; 
y4=barheight+noise; 
y5=barheight+noise; 
y6=.3[y5,y7]+noise; 
bot y9=0;
z7=z9+whatever*randrt;
z8=whatever[z7,z9];
draw z1--z2 
 & half(z2,z2-z1,z3,-randup,z4,z5-z4)
 & z4--z5 
 & half(z5,z5-z4,z6,-randup,z7,z8-z7) 
 & z7--z8;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z9;
labels(1,2,3,4,5,6,7,8,9); 
endchar;

% germandbls
ffmchar("00DF",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise; 
x3=.5w+noise; 
x5=.5w+noise; 
x7=.5w+noise; 
w-x4=leftstemloc+noise; 
w-x6=good.x(1.5u+s+noise);
x8=.4w+noise; 
bot y1=noise-o;
bot y8=noise;
y2=barheight+noise;
top y3=h+o+noise;
y5=barheight+noise;
y4=.5[y5,y3]+noise;
y6=.5[y7,y5]+noise;
z7=z8+whatever*randrt;
pair randira,randirb;
randira:=randrt;
randirb:=randrt;
draw z1--z2
 & arc(z2,randup,z3,randira)
 & half(z3,randira,z4,-randup,z5,-randirb);
draw half(z5,randirb,z6,-randup,z7,z8-z7)
 & z7--z8;
labels(1,2,3,4,5,6,7,8); 
endchar;

ffmchar("t",13,ht#,0);
italcorr ht#*slant+.5u#;
if .5w<>good.x .5w: change_width; fi
lft x1=noise-eps;
rt x2=w+noise;
x3=.5w+noise;
x4=.5w+noise;
top y1=h+noise;
top y2=h+noise;
bot y4=noise-o;
z3=whatever[z1,z2];
draw z1--z2; 
draw z3--z4; 
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(x4,0);
labels(1,2,3,4); 
endchar;

ffmchar("u",15,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise; 
w-x4=leftstemloc+noise; 
w-x5=leftstemloc+noise; 
x3=.5[x1,x4]+noise;
top y1=h+o+noise;
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
top y5=h+o+noise;
draw z1--z2
 & half(z2,z2-z1,z3,randrt,z4,z5-z4)
 & z4--z5; 
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
charanchorcedillas_[charepscode]=z3;
labels(1,2,3,4,5); 
endchar;

ffmchar("v",13,ht#,0);
italcorr ht#*slant;
x1=good.x(1.5u+s+noise)-ho;
w-x3=good.x(1.5u+s+noise)-ho;
x2=.5[x1,x3]+noise;
top y1=h+o+noise;
bot y2=noise-o;
top y3=h+o+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

ffmchar("w",20,ht#,0);
italcorr ht#*slant;
x1=good.x(1.5u+s+noise)-ho;
w-x5=good.x(1.5u+s+noise)-ho;
x3=.5[x1,x5]+noise;
top y1=h+o+noise;
bot y2=noise-o;
y3=y1-ygap+noise;
bot y4=noise-o;
top y5=h+o+noise;
z4=z5+whatever*(x5-x1,4*(y1-y2)-2ygap);
z2=z1+whatever*(x1-x5,4*(y1-y2)-2ygap);
draw z1--z2--z3;
draw z3--z4--z5;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

ffmchar("x",13,ht#,0);
italcorr ht#*slant;
x1=good.x(1.5u+s+noise);
x3=good.x(1.5u+s+noise);
w-x2=good.x(1.5u+s+noise);
w-x4=good.x(1.5u+s+noise);
top y1=h+o+noise;
top y4=h+o+noise;
bot y3=noise-o;
bot y2=noise-o;
draw z1--z2;
draw z3--z4;
labels(1,2,3,4); 
endchar;

ffmchar("y",15.5,ht#,0); 
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+.5noise; 
w-x4=leftstemloc+.5noise; 
w-x5=leftstemloc+noise; 
x3=.5[x1,x5]+noise;
x6=.5[x1,x5]+noise;
top y1=h+o+noise;
top y5=h+o+noise;
bot y6=noise-o; 
y3=barheight+noise;
y2=.618[y3,y5]+noise;
y4=.618[y3,y5]+noise;
draw z1--z2
 & half(z2,z2-z1,z3,randrt,z4,z5-z4)
 & z4--z5;
draw z6--z3;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

ffmchar("z",15,ht#,0);
italcorr ht#*slant;
x1=leftstemloc+noise;
w-x2=leftstemloc+noise; 
x3=leftstemloc+noise;
w-x4=leftstemloc+noise; 
top y1=h+noise; 
top y2=h+noise;
bot y3=noise;
bot y4=noise;
draw z1--z2--z3--z4;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4); 
endchar;

% ij
ffmchainedchar("0133","i","j",0);

% ff
ffmchainedchar("FB00","f","f",0);

% fi
ffmchainedchar("FB01","f","i",0);

% fl
ffmchainedchar("FB02","f","l",0);

% ffi
ffmchainedchar("FB03","FB00","i",0);

% ffl
ffmchainedchar("FB04","FB00","l",0);

% dotlessi
ffmcopiedchar("0131","i");

% dotlessj
ffmcopiedchar("0237","j");

% dcroat
ffmcopiedchar("0111","00F0");

% aacute
ffmcombinedchar("00E1","a","00B4","top",ht#+acc_ht#,0);

% agrave
ffmcombinedchar("00E0","a","0060","top",ht#+acc_ht#,0);

% adieresis
ffmcombinedchar("00E4","a","00A8","top",ht#+acc_ht#,0);

% acircumflex
ffmcombinedchar("00E2","a","02C6","top",ht#+acc_ht#,0);

% atilde
ffmcombinedchar("00E3","a","02DC","top",ht#+acc_ht#,0);

% aring
ffmcombinedchar("00E5","a","02DA","top",ht#+acc_ht#,0);

% amacron
ffmcombinedchar("0101","a","00AF","top",ht#+acc_ht#,0);

% abreve
ffmcombinedchar("0103","a","02D8","top",ht#+acc_ht#,0);

% aogonek
ffmcombinedchar("0105","a","02DB","cedilla",ht#,acc_depth#);

% adotbelow
ffmcombinedchar("1EA1","a","0323","bot",ht#,acc_depth#);

% aeacute
ffmcombinedchar("01FD","00E6","00B4","top",ht#+acc_ht#,0);

% cacute
ffmcombinedchar("0107","c","00B4","top",ht#+acc_ht#,0);

% ccaron
ffmcombinedchar("010D","c","02C7","top",ht#+acc_ht#,0);

% ccedilla
ffmcombinedchar("00E7","c","00B8","cedilla",ht#,acc_depth#);

% ccircumflex
ffmcombinedchar("0109","c","02C6","top",ht#+acc_ht#,0);

% cdotaccent
ffmcombinedchar("010B","c","02D9","top",ht#+acc_ht#,0);

% dcaron
ffmcombinedchar("010F","d","02C7","top",ht#+acc_ht#,0);

% eacute
ffmcombinedchar("00E9","e","00B4","top",ht#+acc_ht#,0);

% egrave
ffmcombinedchar("00E8","e","0060","top",ht#+acc_ht#,0);

% edieresis
ffmcombinedchar("00EB","e","00A8","top",ht#+acc_ht#,0);

% ecircumflex
ffmcombinedchar("00EA","e","02C6","top",ht#+acc_ht#,0);

% ecaron
ffmcombinedchar("011B","e","02C7","top",ht#+acc_ht#,0);

% eogonek
ffmcombinedchar("0119","e","02DB","cedilla",ht#,comma_depth#);

% emacron
ffmcombinedchar("0113","e","00AF","top",ht#+acc_ht#,0);

% ebreve
ffmcombinedchar("0115","e","02D8","top",ht#+acc_ht#,0);

% edotaccent
ffmcombinedchar("0117","e","02D9","top",ht#+acc_ht#,0);

% etilde
ffmcombinedchar("1EBD","e","02DC","top",ht#+acc_ht#,0);

% edotbelow
ffmcombinedchar("1EB9","e","0323","bot",ht#,acc_depth#);

% gcircumflex
ffmcombinedchar("011D","g","02C6","top",ht#+acc_ht#,0);

% gbreve
ffmcombinedchar("011F","g","02D8","top",ht#+acc_ht#,0);

% gdotaccent
ffmcombinedchar("0121","G","02D9","top",ht#+acc_ht#,0);

% gcedilla
ffmcombinedchar("0123","g","00B8","cedilla",ht#,acc_depth#);

% gcaron
ffmcombinedchar("01E7","g","02C7","top",ht#+acc_ht#,0);

% hcircumflex
ffmcombinedchar("0125","h","02C6","top",ht#+acc_ht#,0);

% iacute
ffmcombinedchar("00ED","0131","00B4","top",ht#+acc_ht#,0);

% igrave
ffmcombinedchar("00EC","0131","0060","top",ht#+acc_ht#,0);

% idieresis
ffmcombinedchar("00EF","0131","00A8","top",ht#+acc_ht#,0);

% icircumflex
ffmcombinedchar("00EE","0131","02C6","top",ht#+acc_ht#,0);

% itilde
ffmcombinedchar("0129","0131","02DC","top",ht#+acc_ht#,0);

% imacron
ffmcombinedchar("012B","0131","00AF","top",ht#+acc_ht#,0);

% ibreve
ffmcombinedchar("012D","0131","02D8","top",ht#+acc_ht#,0);

% iogonek
ffmcombinedchar("012F","i","02DB","cedilla",ht#,acc_depth#);

% idotbelow
ffmcombinedchar("1ECB","i","0323","bot",ht#,acc_depth#);

% jcircumflex
ffmcombinedchar("0135","0237","02C6","top",ht#+acc_ht#,0);

% kcedilla
ffmcombinedchar("0137","k","0326","bot",ht#,acc_depth#);

% kgreenlandic
ffmcopiedchar("0138","k");

% lacute
ffmcombinedchar("013A","l","00B4","top",ht#+acc_ht#,0);

% lcaron
ffmcombinedchar("013E","l","2019","topright",ht#+acc_ht#,0);

% lcedilla
ffmcombinedchar("013C","l","0326","bot",ht#,acc_depth#);

% ldot
ffmchainedchar("0140","l","00B7",-5);

% nacute
ffmcombinedchar("0144","n","00B4","top",ht#+acc_ht#,0);

% ntilde
ffmcombinedchar("00F1","n","02DC","top",ht#+acc_ht#,0);

% ncaron
ffmcombinedchar("0148","n","02C7","top",ht#+acc_ht#,0);

% ncedilla
ffmcombinedchar("0146","n","0326","bot",ht#,acc_depth#);

% napostrophe (solved with tonos)
ffmchainedchar("0149","0384","n",-3);

% oacute
ffmcombinedchar("00F3","o","00B4","top",ht#+acc_ht#,0);

% ograve
ffmcombinedchar("00F2","o","0060","top",ht#+acc_ht#,0);

% odieresis
ffmcombinedchar("00F6","o","00A8","top",ht#+acc_ht#,0);

% ocircumflex
ffmcombinedchar("00F4","o","02C6","top",ht#+acc_ht#,0);

% otilde
ffmcombinedchar("00F5","o","02DC","top",ht#+acc_ht#,0);

% ohungarumlaut
ffmcombinedchar("0151","o","02DD","top",ht#+acc_ht#,0);

% omacron
ffmcombinedchar("014D","o","00AF","top",ht#+acc_ht#,0);

% obreve
ffmcombinedchar("014F","o","02D8","top",ht#+acc_ht#,0);

% odotbelow
ffmcombinedchar("1ECD","o","0323","bot",ht#,acc_depth#);

% oslashacute
ffmcombinedchar("01FF","00F8","00B4","top",ht#+acc_ht#,0);

% racute
ffmcombinedchar("0155","r","00B4","top",ht#+acc_ht#,0);

% rcaron
ffmcombinedchar("0159","r","02C7","top",ht#+acc_ht#,0);

% rcedilla
ffmcombinedchar("0157","r","0326","bot",ht#,acc_depth#);

% sacute
ffmcombinedchar("015B","s","00B4","top",ht#+acc_ht#,0);

% scaron
ffmcombinedchar("0161","s","02C7","top",ht#+acc_ht#,0);

% scedilla
ffmcombinedchar("015F","s","00B8","cedilla",ht#,acc_depth#);

% scircumflex
ffmcombinedchar("015D","s","02C6","top",ht#+acc_ht#,0);

% scommaaccent
ffmcombinedchar("0219","s","0326","bot",ht#,acc_depth#);

% tcaron
ffmcombinedchar("0165","t","02C7","top",ht#+acc_ht#,0);

% tcommaaccent
ffmcombinedchar("021B","t","0326","bot",ht#,acc_depth#);

% tcedilla
ffmcopiedchar("0163","021B");

% uacute
ffmcombinedchar("00FA","u","00B4","top",ht#+acc_ht#,0);

% ugrave
ffmcombinedchar("00F9","u","0060","top",ht#+acc_ht#,0);

% udieresis
ffmcombinedchar("00FC","u","00A8","top",ht#+acc_ht#,0);

% ucircumflex
ffmcombinedchar("00FB","u","02C6","top",ht#+acc_ht#,0);

% uhungarumlaut
ffmcombinedchar("0171","u","02DD","top",ht#+acc_ht#,0);

% uring
ffmcombinedchar("016F","u","02DA","top",ht#+acc_ht#,0);

% utilde
ffmcombinedchar("0169","u","02DC","top",ht#+acc_ht#,0);

% umacron
ffmcombinedchar("016B","u","00AF","top",ht#+acc_ht#,0);

% ubreve
ffmcombinedchar("016D","u","02D8","top",ht#+acc_ht#,0);

% uogonek
ffmcombinedchar("0173","u","02DB","cedilla",ht#,acc_depth#);

% udotbelow
ffmcombinedchar("1EE5","u","0323","bot",ht#,acc_depth#);

% wcircumflex
ffmcombinedchar("0175","w","02C6","top",ht#+acc_ht#,0);

% wgrave
ffmcombinedchar("1E81","w","0060","top",ht#+acc_ht#,0);

% wacute
ffmcombinedchar("1E83","w","00B4","top",ht#+acc_ht#,0);

% wdieresis
ffmcombinedchar("1E85","w","00A8","top",ht#+acc_ht#,0);

% yacute
ffmcombinedchar("00FD","y","00B4","top",ht#+acc_ht#,0);

% ydieresis
ffmcombinedchar("00FF","y","00A8","top",ht#+acc_ht#,0);

% ycircumflex
ffmcombinedchar("0177","y","02C6","top",ht#+acc_ht#,0);

% ygrave
ffmcombinedchar("1EF3","y","0060","top",ht#+acc_ht#,0);

% ytilde
ffmcombinedchar("1EF9","y","02DC","top",ht#+acc_ht#,0);

% ymacron
ffmcombinedchar("0233","y","00AF","top",ht#+acc_ht#,0);

% zacute
ffmcombinedchar("017A","z","00B4","top",ht#+acc_ht#,0);

% zcaron
ffmcombinedchar("017E","z","02C7","top",ht#+acc_ht#,0);

% zdotaccent
ffmcombinedchar("017C","z","02D9","top",ht#+acc_ht#,0);

% alpha
ffmcopiedchar("03B1","a");

% beta
ffmcopiedchar("03B2","b");

% gamma
ffmchar("03B3",12,ht#,0);
italcorr ht#*slant+.5u#;
if .5w<>good.x .5w: change_width; fi
x1=leftstemloc+noise;
x2=leftstemloc+noise;
rt x3=w+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
draw z1--z2--z3;
labels(1,2,3); 
endchar;

% delta
ffmchar("03B4",15,ht#,0);
italcorr .9ht#*slant;
x1=good.x(1.5u+s+noise);
w-x2=good.x(1.5u+s+noise);
x3=.5w+noise;
bot y1=noise;
bot y2=noise;
top y3=h+o+noise;
draw z1--z2--z3--cycle;
labels(1,2,3); 
endchar;

% epsilon
ffmcopiedchar("03B5","e");

% zeta
ffmcopiedchar("03B6","z");

% eta
ffmcopiedchar("03B7","h");

% theta
ffmchar("03B8",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
lft x5=max(rt x2+2u,.35w)+noise;
rt x6=min(lft x4-2u,.65w)+noise;
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
y5=barheight+noise;
y6=barheight+noise;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

% iota
ffmcopiedchar("03B9","i");

% kappa
ffmcopiedchar("03BA","k");

% lambda
ffmchar("03BB",13,ht#,0);
italcorr .9ht#*slant;
x1=good.x(1.5u+s+noise);
w-x2=good.x(1.5u+s+noise);
x3=.5w+noise;
bot y1=noise-o;
bot y2=noise-o;
top y3=h+o+noise;
draw z1--z3--z2;
labels(1,2,3); 
endchar;

% mu
ffmcopiedchar("03BC","m");

% nu
ffmcopiedchar("03BD","n");

% xi
ffmchar("03BE",15,ht#,0);
italcorr .8ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+noise;
w-x3=leftstemloc+noise;
w-x4=leftstemloc+noise;
x5=.3w+noise;
x6=.7w+noise;
bot y1=noise;
top y2=h+noise; 
bot y3=noise;
top y4=h+noise; 
y5=barheight+noise;
y6=barheight+noise;
draw z1--z3;
draw z2--z4;
draw z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% omicron
ffmcopiedchar("03BF","o");

% pi
ffmchar("03C0",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x2=leftstemloc+noise;
x3=w-leftstemloc+ho+noise;
x4=w-leftstemloc+ho+noise;
bot y1=noise-o;
top y2=h+noise;
top y3=h+noise;
bot y4=noise-o;
draw z1--z2--z3--z4;
labels(1,2,3,4); 
endchar;

% rho
ffmcopiedchar("03C1","p");

% sigma
ffmchar("03C3",14,ht#,0);
italcorr .9ht#*slant;
x1=good.x(1.5u+s+noise);
x2=.5[x1,x5];
x3=good.x(1.5u+s+noise);
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho+noise;
bot y1=noise;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
bot y5=0;
draw z5--z1--z2--z3--z4;
charanchortops_[charepscode]=(.5[leftstemloc,w-leftstemloc+o],h);
labels(1,2,3,4,5); 
endchar;

% sigma1
ffmcopiedchar("03C2","03C3");

% stigma 
ffmchar("03DB",13,ht#,acc_depth#); 
italcorr .8ht#*slant;
italcorr .8ht#*slant;
x3=good.x(2u+s+noise);
x7=.5w;
x1=w-leftstemloc+ho+noise;
x2=.5[x3,x1]+noise;
x4=.5[x3,x1]+noise;
x6=.6[x3,x1]+noise;
x5=.8w;
top y1=h+noise; 
top y2=h+noise; 
y3=.6[y2,y4]+noise; 
bot y4=noise; 
y5=.3[y4,y7]+noise; 
bot y6=noise-d;
z7=z6+whatever*randrt;
pair randir;
randir:=randrt;
draw z1--z2 
 & half(z2,z2-z1,z3,-randup,z4,randir)
 & half(z4,randir,z5,-randup,z6,z7-z6) 
 & z6--z7;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7); 
endchar;

% tau
ffmcopiedchar("03C4","t");

% upsilon
ffmcopiedchar("03C5","y");

% phi
ffmchar("03C6",15,ht#,0);
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
top y1=.85h+o+noise; 
y2=barheight+noise;
bot y3=.15h-o+noise;
y4=barheight+noise;
bot y5=noise-o;
top y6=h+o+noise; 
z5=whatever[z1,z3];
z6=whatever[z1,z3];
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z5--z6;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6); 
endchar;

% chi
ffmcopiedchar("03C7","x");

% psi
ffmchar("03C8",18,ht#,0); 
italcorr ht#*slant;
x1=leftstemloc+noise; 
x2=leftstemloc+.5noise; 
w-x4=leftstemloc+.5noise; 
w-x5=leftstemloc+noise; 
x3=.5[x1,x5]+noise;
x6=.5[x1,x5]+noise;
top y1=h+o+noise;
top y5=h+o+noise;
bot y6=noise-o; 
top y7=h+o+noise;
y3=barheight+noise;
y2=.618[y3,y5]+noise;
y4=.618[y3,y5]+noise;
z7=whatever[z6,z3];
draw z1--z2
 & half(z2,z2-z1,z3,randrt,z4,z5-z4)
 & z4--z5;
draw z6--z7;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5,6,7); 
endchar;

% omega
ffmchar("03C9",15,ht#,0);
italcorr .8ht#*slant;
x1=good.x(1.5u+s+noise);
lft x8-rt x2=2.5u+noise;
.5[x2,x8]=.5w;
x4=good.x(1.5u+s+noise);
x5=.5w+noise;
w-x6=good.x(1.5u+s+noise);  
w-x9=good.x(1.5u+s+noise);
lft x7-rt x3=2.5u+noise;
.5[x3,x7]=.5w;
bot y1=noise;
bot y2=noise;
bot y3=max(top y2+eps,.15h+noise);
top y5=h+o+noise; 
y4=.4[y3,y5]+noise;
y6=.4[y7,y5]+noise;
bot y8=noise;
bot y7=max(top y8+eps,.15h+noise);
bot y9=noise;
pair randdir;
randdir:=randrt;
draw z1--z2--z3
 & half(z3,-randrt,z4,randup,z5,randdir)
 & half(z5,randdir,z6,-randup,z7,-randrt)
 & z7--z8--z9;
charanchortops_[charepscode]=(.5w,h);
charanchorbots_[charepscode]=(.5w,0);
labels(1,2,3,4,5,6,7,8,9); 
endchar;

% archaic koppa
ffmchar("03D9",15,ht#,acc_depth#); 
italcorr .8ht#*slant;
x1=.5w+noise;
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
w-x4=good.x(1.5u+s+noise);  
x5=.5w+noise;
top y1=h+o+noise; 
y2=barheight+noise;
bot y3=noise-o;
y4=barheight+noise;
bot y5=noise-d;
draw full(z1,-randrt,z2,-randup,z3,randrt,z4,randup);
draw z3--z5;
charanchortops_[charepscode]=(.5w,h);
labels(1,2,3,4,5); 
endchar;

% sampi
ffmchar("03E1",14,ht#,0);
italcorr ht#*slant;
lft x1=rt x3+noise;
w-x2=good.x(1.5u+s-ho)+noise;
x3=good.x(1.5u+s-ho)+noise;
x5=.4[x3,x2];
top y1=h+o+noise; 
bot y2=noise-o;
bot y3=noise-o;
y4=.8h;
bot y5=noise-o;
z4=whatever[z1,z2];
z6=whatever[z1,z2]=z5+(noise,noise)+whatever*(z4-z3);
draw z1--z2;
draw z3--z4;
draw z5--z6;
labels(1,2,3,4,5,6); 
endchar;

% digamma
ffmchar("03DD",14,ht#,0);
italcorr .9ht#*slant;
x1=leftstemloc+noise;
x3=leftstemloc+noise;
x4=w-leftstemloc+ho+noise;
x5=w-leftstemloc+ho-xgap+noise;
bot y1=noise-o;
y2=barheight+noise;
top y3=h+noise;
top y4=h+noise;
y5=barheight+noise;
z2=whatever[z1,z3];
draw z1--z2--z5;
draw z2--z3--z4; 
labels(1,2,3,4,5); 
endchar;

% schwa
ffmchar("0259",13,ht#,0);
italcorr .8ht#*slant;
w-x1=good.x(1.5u+s+noise);  
x2=good.x(1.5u+s+noise);
x3=.5w+noise;
x4=.5w+noise;
x5=.2[x2,x1];
y1=barheight+noise;
y2=barheight+noise;
bot y3=noise-o;
top y4=h+noise; 
top y5=h+noise; 
pair randir;
randir:=randup;
draw z1--z2
 & half(z2,-randup,z3,randrt,z1,randir)
 & arc(z1,randir,z4,z5-z4)
 & z4--z5;
labels(1,2,3,4,5); 
endchar;

% turned e
ffmcopiedchar("01DD","0259");

% koppa
ffmchar("03DF",13,ht#,0);
x1=.2[x2,x3]+noise;
x2=leftstemloc+noise;
w-x3=leftstemloc+noise;
x4=.8[x2,x3]+noise;
top y1=h+o+noise; 
y2=barheight+noise;
y3=barheight+noise;
bot y4=noise-o;
draw z1--z2--z3--z4;
labels(1,2,3,4); 
endchar;

% alpha with ypogegrammeni
ffmcombinedchar("1FB3","03B1","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with tonos
ffmcombinedchar("03AC","03B1","0384","top",ht#+acc_ht#,0);

% alpha with psili
ffmcombinedchar("1F00","03B1","1FBF","top",ht#+acc_ht#,0);

% alpha with dasia
ffmcombinedchar("1F01","03B1","1FFE","top",ht#+acc_ht#,0);

% alpha with psili and varia
ffmcombinedchar("1F02","03B1","1FCD","top",ht#+acc_ht#,0);

% alpha with dasia and varia
ffmcombinedchar("1F03","03B1","1FDD","top",ht#+acc_ht#,0);

% alpha with psili and oxia
ffmcombinedchar("1F04","03B1","1FCE","top",ht#+acc_ht#,0);

% alpha with dasia and oxia
ffmcombinedchar("1F05","03B1","1FDE","top",ht#+acc_ht#,0);

% alpha with psili and perispomeni
ffmcombinedchar("1F06","03B1","1FCF","top",ht#+acc_ht#,0);

% alpha with dasia and perispomeni
ffmcombinedchar("1F07","03B1","1FDF","top",ht#+acc_ht#,0);

% alpha with varia
ffmcombinedchar("1F70","03B1","1FEF","top",ht#+acc_ht#,0);

% alpha with oxia
ffmcopiedchar("1F71","03AC");

% alpha with psili and ypogegrammeni
ffmcombinedchar("1F80","1F00","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with dasia and ypogegrammeni
ffmcombinedchar("1F81","1F01","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with psili and varia and ypogegrammeni
ffmcombinedchar("1F82","1F02","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with dasia and varia and ypogegrammeni
ffmcombinedchar("1F83","1F03","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with psili and oxia and ypogegrammeni
ffmcombinedchar("1F84","1F04","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with dasia and oxia and ypogegrammeni
ffmcombinedchar("1F85","1F05","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with psili and perispomeni and ypogegrammeni
ffmcombinedchar("1F86","1F06","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with dasia and perispomeni and ypogegrammeni
ffmcombinedchar("1F87","1F07","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with vrachy (breve)
ffmcombinedchar("1FB0","03B1","02D8","top",ht#+acc_ht#,0);

% alpha with macron
ffmcombinedchar("1FB1","03B1","00AF","top",ht#+acc_ht#,0);

% alpha with varia and ypogegrammeni
ffmcombinedchar("1FB2","1F70","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with oxia and ypogegrammeni
ffmcombinedchar("1FB4","03AC","037A","bot",ht#+acc_ht#,comma_depth#);

% alpha with perispomeni
ffmcombinedchar("1FB6","03B1","1FC0","top",ht#+acc_ht#,0);

% alpha with perispomeni and ypogegrammeni
ffmcombinedchar("1FB7","1FB3","1FC0","top",ht#+acc_ht#,0);

% eta with ypogegrammeni
ffmcombinedchar("1FC3","03B7","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with varia
ffmcombinedchar("1F74","03B7","1FEF","top",ht#+acc_ht#,0);

% eta with dasia
ffmcombinedchar("1F21","03B7","1FFE","top",ht#+acc_ht#,0);

% eta with psili
ffmcombinedchar("1F20","03B7","1FBF","top",ht#+acc_ht#,0);

% eta with varia and ypogegrammeni
ffmcombinedchar("1FC2","1F74","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with dasia and ypogegrammeni
ffmcombinedchar("1F91","1F21","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with psili and ypogegrammeni
ffmcombinedchar("1F90","1F20","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with tonos
ffmcombinedchar("03AE","03B7","0384","top",ht#+acc_ht#,0);

% eta with dasia and oxia
ffmcombinedchar("1F25","03B7","1FDE","top",ht#+acc_ht#,0);

% eta with psili and oxia
ffmcombinedchar("1F24","03B7","1FCE","top",ht#+acc_ht#,0);

% eta with dasia and varia
ffmcombinedchar("1F23","03B7","1FDD","top",ht#+acc_ht#,0);

% eta with oxia and ypogegrammeni
ffmcombinedchar("1FC4","03AE","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with dasia and oxia and ypogegrammeni
ffmcombinedchar("1F95","1F25","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with psili and oxia and ypogegrammeni
ffmcombinedchar("1F94","1F24","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with dasia and varia and ypogegrammeni
ffmcombinedchar("1F93","1F23","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with perispomeni
ffmcombinedchar("1FC6","03B7","1FC0","top",ht#+acc_ht#,0);

% eta with dasia and perispomeni
ffmcombinedchar("1F27","03B7","1FDF","top",ht#+acc_ht#,0);

% eta with psili and perispomeni
ffmcombinedchar("1F26","03B7","1FCF","top",ht#+acc_ht#,0);

% eta with psili and varia
ffmcombinedchar("1F22","03B7","1FCD","top",ht#+acc_ht#,0);

% alpha with perispomeni and ypogegrammeni
ffmcombinedchar("1FC7","1FC6","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with dasia and perispomeni and ypogegrammeni
ffmcombinedchar("1F97","1F27","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with psili and perispomeni and ypogegrammeni
ffmcombinedchar("1F96","1F26","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with psili and varia and ypogegrammeni
ffmcombinedchar("1F92","1F22","037A","bot",ht#+acc_ht#,comma_depth#);

% eta with oxia
ffmcopiedchar("1F75","03AE");

% omega with ypogegrammeni
ffmcombinedchar("1FF3","03C9","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with varia
ffmcombinedchar("1F7C","03C9","1FEF","top",ht#+acc_ht#,0);

% omega with dasia
ffmcombinedchar("1F61","03C9","1FFE","top",ht#+acc_ht#,0);

% omega with psili
ffmcombinedchar("1F60","03C9","1FBF","top",ht#+acc_ht#,0);

% omega with dasia and varia
ffmcombinedchar("1F63","03C9","1FDD","top",ht#+acc_ht#,0);

% omega with varia and ypogegrammeni
ffmcombinedchar("1FF2","1F7C","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with dasia and ypogegrammeni
ffmcombinedchar("1FA1","1F61","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with psili and ypogegrammeni
ffmcombinedchar("1FA0","1F60","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with dasia and varia and ypogegrammeni
ffmcombinedchar("1FA3","1F63","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with tonos
ffmcombinedchar("03CE","03C9","0384","top",ht#+acc_ht#,0);

% omega with dasia and oxia
ffmcombinedchar("1F65","03C9","1FDE","top",ht#+acc_ht#,0);

% omega with psili and oxia
ffmcombinedchar("1F64","03C9","1FCE","top",ht#+acc_ht#,0);

% omega with psili and varia
ffmcombinedchar("1F62","03C9","1FCD","top",ht#+acc_ht#,0);

% omega with oxia and ypogegrammeni
ffmcombinedchar("1FF4","03CE","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with dasia and oxia and ypogegrammeni
ffmcombinedchar("1FA5","1F65","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with psili and oxia and ypogegrammeni
ffmcombinedchar("1FA4","1F60","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with psili and varia and ypogegrammeni
ffmcombinedchar("1FA2","1F62","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with perispomeni
ffmcombinedchar("1FF6","03C9","1FC0","top",ht#+acc_ht#,0);

% omega with dasia and perispomeni
ffmcombinedchar("1F67","03C9","1FDF","top",ht#+acc_ht#,0);

% omega with psili and perispomeni
ffmcombinedchar("1F66","03C9","1FCF","top",ht#+acc_ht#,0);

% omega with perispomeni and ypogegrammeni
ffmcombinedchar("1FF7","1FF3","1FC0","top",ht#+acc_ht#,0);

% omega with dasia and perispomeni and ypogegrammeni
ffmcombinedchar("1FA7","1F67","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with psili and perispomeni and ypogegrammeni
ffmcombinedchar("1FA6","1F66","037A","bot",ht#+acc_ht#,comma_depth#);

% omega with oxia
ffmcopiedchar("1F7D","03CE");

% iota with varia
ffmcombinedchar("1F76","03B9","1FEF","top",ht#+acc_ht#,0);

% iota with dasia
ffmcombinedchar("1F31","03B9","1FFE","top",ht#+acc_ht#,0);

% iota with psili
ffmcombinedchar("1F30","03B9","1FBF","top",ht#+acc_ht#,0);

% iota with dasia and varia
ffmcombinedchar("1F33","03B9","1FDD","top",ht#+acc_ht#,0);

% iota with tonos
ffmcombinedchar("03AF","03B9","0384","top",ht#+acc_ht#,0);

% iota with dasia and oxia
ffmcombinedchar("1F35","03B9","1FDE","top",ht#+acc_ht#,0);

% iota with psili and oxia
ffmcombinedchar("1F34","03B9","1FCE","top",ht#+acc_ht#,0);

% iota with psili and varia
ffmcombinedchar("1F32","03B9","1FCD","top",ht#+acc_ht#,0);

% iota with perispomeni
ffmcombinedchar("1FD6","03B9","1FC0","top",ht#+acc_ht#,0);

% iota with dasia and perispomeni
ffmcombinedchar("1F37","03B9","1FDF","top",ht#+acc_ht#,0);

% iota with psili and perispomeni
ffmcombinedchar("1F36","03B9","1FCF","top",ht#+acc_ht#,0);

% iota with dialytika
ffmcombinedchar("03CA","03B9","00A8","top",ht#+acc_ht#,0);

% iota with dialytika and varia
ffmcombinedchar("1FD2","03B9","1FED","top",ht#+acc_ht#,0);

% iota with dialytika and tonos
ffmcombinedchar("0390","03B9","0385","top",ht#+acc_ht#,0);

% iota with dialytika and perispomeni
ffmcombinedchar("1FD7","03B9","1FC1","top",ht#+acc_ht#,0);

% iota with oxia
ffmcopiedchar("1F77","03AF");

% iota with vrachy (breve)
ffmcombinedchar("1FD0","03B9","02D8","top",ht#+acc_ht#,0);

% iota with macron
ffmcombinedchar("1FD1","03B9","00AF","top",ht#+acc_ht#,0);

% iota with dialytika and oxia (tonos)
ffmcombinedchar("1FD3","03B9","0385","top",ht#+acc_ht#,0);

% upsilon with varia
ffmcombinedchar("1F7A","03C5","1FEF","top",ht#+acc_ht#,0);

% upsilon with dasia
ffmcombinedchar("1F51","03C5","1FFE","top",ht#+acc_ht#,0);

% upsilon with psili
ffmcombinedchar("1F50","03C5","1FBF","top",ht#+acc_ht#,0);

% upsilon with dasia and varia
ffmcombinedchar("1F53","03C5","1FDD","top",ht#+acc_ht#,0);

% upsilon with tonos
ffmcombinedchar("03CD","03C5","0384","top",ht#+acc_ht#,0);

% upsilon with dasia and oxia
ffmcombinedchar("1F55","03C5","1FDE","top",ht#+acc_ht#,0);

% upsilon with psili and oxia
ffmcombinedchar("1F54","03C5","1FCE","top",ht#+acc_ht#,0);

% upsilon with psili and varia
ffmcombinedchar("1F52","03C5","1FCD","top",ht#+acc_ht#,0);

% upsilon with perispomeni
ffmcombinedchar("1FE6","03C5","1FC0","top",ht#+acc_ht#,0);

% upsilon with dasia and perispomeni
ffmcombinedchar("1F57","03C5","1FDF","top",ht#+acc_ht#,0);

% upsilon with psili and perispomeni
ffmcombinedchar("1F56","03C5","1FCF","top",ht#+acc_ht#,0);

% upsilon with dialytika (dieresis)
ffmcombinedchar("03CB","03C5","00A8","top",ht#+acc_ht#,0);

% upsilon with dialytika and varia
ffmcombinedchar("1FE2","03C5","1FED","top",ht#+acc_ht#,0);

% upsilon with dialytika and tonos
ffmcombinedchar("03B0","03C5","0385","top",ht#+acc_ht#,0);

% upsilon with dialytika and perispomeni
ffmcombinedchar("1FE7","03C5","1FC1","top",ht#+acc_ht#,0);

% upsilon with oxia
ffmcombinedchar("1F7B","03C5","0384","top",ht#+acc_ht#,0);

% upsilon with vrachy (breve)
ffmcombinedchar("1FE0","03C5","02D8","top",ht#+acc_ht#,0);

% upsilon with macron
ffmcombinedchar("1FE1","03C5","00AF","top",ht#+acc_ht#,0);

% upsilon with dialytika and oxia (tonos)
ffmcombinedchar("1FE3","03C5","0385","top",ht#+acc_ht#,0);

% epsilon with varia
ffmcombinedchar("1F72","03B5","1FEF","top",ht#+acc_ht#,0);

% epsilon with dasia
ffmcombinedchar("1F11","03B5","1FFE","top",ht#+acc_ht#,0);

% epsilon with psili
ffmcombinedchar("1F10","03B5","1FBF","top",ht#+acc_ht#,0);

% epsilon with dasia and varia
ffmcombinedchar("1F13","03B5","1FDD","top",ht#+acc_ht#,0);

% epsilon with tonos
ffmcombinedchar("03AD","03B5","0384","top",ht#+acc_ht#,0);

% epsilon with dasia and oxia
ffmcombinedchar("1F15","03B5","1FDE","top",ht#+acc_ht#,0);

% epsilon with psili and oxia
ffmcombinedchar("1F14","03B5","1FCE","top",ht#+acc_ht#,0);

% epsilon with psili and varia
ffmcombinedchar("1F12","03B5","1FCD","top",ht#+acc_ht#,0);

% epsilon with oxia
ffmcopiedchar("1F73","03AD");

% omicron with varia
ffmcombinedchar("1F78","03BF","1FEF","top",ht#+acc_ht#,0);

% omicron with dasia
ffmcombinedchar("1F41","03BF","1FFE","top",ht#+acc_ht#,0);

% omicron with psili
ffmcombinedchar("1F40","03BF","1FBF","top",ht#+acc_ht#,0);

% omicron with dasia and varia
ffmcombinedchar("1F43","03BF","1FDD","top",ht#+acc_ht#,0);

% omicron with tonos
ffmcombinedchar("03CC","03BF","0384","top",ht#+acc_ht#,0);

% omicron with dasia and oxia
ffmcombinedchar("1F45","03BF","1FDE","top",ht#+acc_ht#,0);

% omicron with psili and oxia
ffmcombinedchar("1F44","03BF","1FCE","top",ht#+acc_ht#,0);

% omicron with psili and varia
ffmcombinedchar("1F42","03BF","1FCD","top",ht#+acc_ht#,0);

% omicron with oxia
ffmcombinedchar("1F79","03BF","0384","top",ht#+acc_ht#,0);

% rho with dasia
ffmcombinedchar("1FE5","03C1","1FFE","top",ht#+acc_ht#,0);

% rho with psili
ffmcombinedchar("1FE4","03C1","1FBF","top",ht#+acc_ht#,0);

%restore the settings for non-lowercase
ht#:=old_ht#;
u#:=u#/.9;   
define_pixels(u); 
barheight#:=old_barheight#;
define_pixels(u); 
define_good_y_pixels(barheight);

