summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/ethiop
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
commit215012a8d684889983ec2c0629e1c704e6853d9c (patch)
treeebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/ethiop
parent1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff)
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/ethiop')
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf204
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf166
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf276
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf173
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf163
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf190
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf186
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf244
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf277
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf141
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf117
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf153
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf199
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf164
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf217
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf290
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf180
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf214
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf189
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf176
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf168
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf159
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf214
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf87
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf195
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf176
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf495
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf133
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf236
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf159
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf422
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf190
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf213
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf186
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf166
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf131
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf201
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf220
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf219
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf209
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf171
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf210
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf174
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf173
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf179
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf209
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf235
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha6.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha7.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf260
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf309
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf260
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf60
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf1
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf353
108 files changed, 15622 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf
new file mode 100644
index 00000000000..c9115073642
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf
@@ -0,0 +1,204 @@
+%-------------------------------------------------------------
+% This is ETH__A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'a:
+cmchar "The letter 'a";
+beginchar(eth_'a,10u#,.55[cap_height#,x_height#],.25u#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'U:
+cmchar "The letter 'U";
+beginchar(eth_'U,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,2.5u#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-25);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+ x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x8=x6r; y8=.8y6; rt_wing(8,1.5u,0);
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'I:
+cmchar "The letter 'I";
+beginchar(eth_'I,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,4u#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-25);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+ x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x8=x7r; y8=y7; rt_half_ellipse(8,1.5u);
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'A:
+cmchar "The letter 'A";
+beginchar(eth_'A,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=.2h; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - 2fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'E:
+cmchar "The letter 'E";
+beginchar(eth_'E,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-25);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x8=x7; y8=y7; half_ring(8);
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'e:
+cmchar "The letter 'e";
+beginchar(eth_'e,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(stem,0); penpos2(stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-.5stem; x3'=.15[x4,x3];
+x2r=x3l-fine; x1l=x2r; x0r=x1l+stem;
+y2=.7h; top y1=y2+.15h; y0=y1+.1h; bot y4=00; y4'=y4+.15h;
+top y3=.7h; y3'=.5[y4',y3];
+filldraw stroke z1e..z2e; t_thumb(0);
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'O:
+cmchar "The letter 'O";
+beginchar(eth_'O,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=.2h; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'ua:
+cmchar "The letter 'ua";
+beginchar(eth_'ua,10u#,.55[cap_height#,x_height#],.25u#);
+adjust_fit(2u#,serif_fit#-stem_shift#);
+
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x11=x0r; x12=x0l; y11=y12=y0;
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(1,2,3,3',4',4,5,6,7,7',11,12); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf
new file mode 100644
index 00000000000..5e733ffa3c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf
@@ -0,0 +1,166 @@
+%-------------------------------------------------------------
+% This is ETH__G.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_`a:
+cmchar "The letter `a";
+beginchar(eth_`a,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.75u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.85h; y1=y0-.2h; y2=.225h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2.5u; x11=x9l+2.5u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_`U:
+cmchar "The letter `U";
+beginchar(eth_`U,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.75u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.85h; y1=y0-.2h; y2=.225h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2.5u; x11=x9l+2.5u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+x13=x11r; y13=.6(y0-y2'); rt_wing(13,1.75u,.02h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_`I:
+cmchar "The letter `I";
+beginchar(eth_`I,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(stem,180);
+penpos2(stem,180); penpos2'(.8stem,180); penpos3(vair,270);
+x0=.5w; x3=x0-u; x1=x0-3.5u; x2=x1-.5u; x2'=x1+.5stem;
+y0=h; y1r=y0l-.1h; y2=y1r-.2h; y2'r=y2-.1h; y3r=y2'r;
+filldraw stroke z0e{left}...z1e...z2e...z2'e...{right}z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos12(stem,0);
+penpos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,0); penpos5(stem,0); penpos4'(stem,0); penpos5'(stem,0);
+x4l=x3r+1.5u; x4'l=x4l-.25u; x5l=x4l+1u; x5'l=x5l+.5u;
+y5=y9l; bot y4=00; y5'=.85(y5-y4)+y4; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e{right}..{down}z5'e--z4'e{down}..{right}z4e;
+x14=x4r; y14=y4; rt_half_ellipse(14,1.5u);
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+iff known eth_`A:
+cmchar "The letter `A";
+beginchar(eth_`A,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(stem,180);
+penpos2(stem,180); penpos2'(.8stem,180); penpos3(vair,270);
+x0=.5w; x3=x0-u; x1=x0-3.5u; x2=x1-.5u; x2'=x1+.5stem;
+y0=h; y1r=y0l-.1h; y2=y1r-.2h; y2'r=y2-.1h; y3r=y2'r;
+filldraw stroke z0e{left}...z1e...z2e...z2'e...{right}z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos12(stem,0);
+penpos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,0); penpos5(stem,0); penpos4'(stem,0); penpos5'(stem,0);
+x4l=x3r+1.5u; x4'l=x4l-.25u; x5l=x4l+1u; x5'l=x5l+.5u;
+y5=y9l; bot y4=00; y5'=.85(y5-y4)+y4; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e{right}..{down}z5'e--z4'e{down}..{right}z4e;
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+iff known eth_`E:
+cmchar "The letter `E";
+beginchar(eth_`E,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180);
+penpos2(stem,180); penpos2'(.8stem,180); pos3(vair,270);
+x0=.5w; x3=x0-u; x1=x0-3.5u; x2=x1-.5u; x2'=x1+.5stem;
+y0=h; y1r=y0l-.1h; y2=y1r-.2h; y2'r=y2-.1h; y3r=y2'r;
+filldraw stroke z0e{left}...z1e...z2e...z2'e...{right}z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos12(stem,0);pos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,0); penpos5(stem,0); penpos4'(stem,0); penpos5'(stem,0);
+x4l=x3r+1.5u; x4'l=x4l-.25u; x5l=x4l+1u; x5'l=x5l+.5u;
+y5=y9l; bot y4=00; y5'=.85(y5-y4)+y4; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e{right}..{down}z5'e--z4'e{down}..{right}z4e;
+half_ring(4);
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+iff known eth_`e:
+cmchar "The letter `e";
+beginchar(eth_`e,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.75u#,-.25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,200); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.25u; x2=x1-.5u; x2'=x2+1.5u;
+y0=.7h; y1=y0-.15h; y2=.25h; bot y2'=0; y3=.05h;
+filldraw stroke z0e{left}...z1e..z2e{down}...z2'e---z3;
+
+pos9(vair,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,90);
+x9l=x3l; x10=x9l+2.25u; x11=x9l+2.25u; x12l=x0l;
+y9r=y3l; y10=y9+.2h; y12l=y0r-oo; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...{left}z12e;
+
+penpos16(1.2stem,0); penpos16'(1.2stem,0);
+x16=x0; x16'=x0-.25u; y16=y0+oo; y16'=y0+.25h;
+filldraw stroke z16e--z16'e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,16'); endchar;
+
+
+iff known eth_`O:
+cmchar "The letter `O";
+beginchar(eth_`O,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180); pos3(vair,270);
+x0=.6w; x3=x0-u; x1=x0-3u; x2=x1; y0=h; y1r=y0l-.2h; y2=y1r-.15h; y3r=y2r-.15h;
+filldraw stroke pulled_arc.e(0,1)...z2e{down}..{right}z3e;
+
+pos9(stem,0); penpos10(stem,0); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x11=x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h; y11=.5(y12-y9)+y9;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,180); penpos4'(stem,180); pos5(vair,180);
+x4r=x3r-4u; x5=x3; x4'r=x4r-.5u;
+y5=y3r; bot y4=00; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e..z4'e{down}...{right}z4e;
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf
new file mode 100644
index 00000000000..d6c23b7962f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf
@@ -0,0 +1,45 @@
+%-------------------------------------------------------------
+% This is ETH_ACCE.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_d_accent:
+cmchar "d accent";
+beginchar(eth_d_accent,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+penpos9(1.3stem,0); penpos10(1.3stem,0); penpos11(1.3stem,0);
+x9r+.5u=x10r=.6w; x11r=x10r-.5u; y9=.85h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(9,10,11); endchar;
+
+
+iff known eth_rassigea:
+cmchar "Rassigea accent";
+beginchar(eth_rassigea,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+penpos6(stem,0); penpos7(stem,0); x6=.5w; x7=.5w; y6=h+o; y7=h;
+lft_half_ellipse(6,2u); rt_half_ellipse(7,2u);
+penlabels(1,2,2',3,4,6,7); endchar;
+
+
+iff known eth_girigea:
+cmchar "Girigea accent";
+beginchar(eth_girigea,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+x3=.675w; y3=-.1h; rt_wing(3,1.75u,0);
+x4=.675w; y4=-.1h; lft_wing(4,1.75u,0);
+penlabels(3,4); endchar;
+
+
+iff known eth_rass:
+cmchar "rass accent";
+beginchar(eth_rass,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+x14=.5w; x15=.5w; y14=y15=h;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(1,2,2',3,4,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf
new file mode 100644
index 00000000000..82d9b701651
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf
@@ -0,0 +1,276 @@
+%-------------------------------------------------------------
+% This is ETH_B.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ba:
+cmchar "The letter ba";
+beginchar(eth_ba,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bU:
+cmchar "The letter bU";
+beginchar(eth_bU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4'r; y6=.5h; rt_half_ellipse(6,1.5u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bI:
+cmchar "The letter bI";
+beginchar(eth_bI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+z6=z4r; rt_half_ellipse(6,1.25u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bA:
+cmchar "The letter bA";
+beginchar(eth_bA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bE:
+cmchar "The letter bE";
+beginchar(eth_bE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4; bot y6=0; half_ring(6);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_be:
+cmchar "The letter be";
+beginchar(eth_be,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.75u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x7r; y6=.6h; lft_wing(6,2u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bO:
+cmchar "The letter bO";
+beginchar(eth_bO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; y4=.25h; y5=.95h; y4'=.35h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bua:
+cmchar "The letter bua";
+beginchar(eth_bua,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,6.0u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,7,8);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x4'r; x20'=x20+2.5u; y20=y20'=.5h; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20);
+endchar;
+
+
+iff known eth_buI:
+cmchar "The letter buI";
+beginchar(eth_buI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,7u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,7,8);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=x4r; x9'=x9+2.5u; y9=y9'=0.5h;
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.5u; y10=y9-.15h; y10'=y9+.2h;
+y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,1.5u,-.01h);
+endchar;
+
+
+iff known eth_buA:
+cmchar "The letter buA";
+beginchar(eth_buA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x20=x4l; x21=x4r; y20=y21=y4; lft_wing(20,2u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_buE:
+cmchar "The letter buE";
+beginchar(eth_buE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.15h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+x10=x4'l; y10=y4; lft_wing(10,2u,.045h);
+x11=x4; y11=y4; half_ring(11);
+endchar;
+
+iff known eth_bue:
+cmchar "The letter bue";
+beginchar(eth_bue,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,7,8);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=x4r; x9'=x9+1.5u; y9=y9'=0.5h;
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.25u; y10=y9; y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,0,-.01h);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf
new file mode 100644
index 00000000000..8b37a800d13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf
@@ -0,0 +1,173 @@
+%-------------------------------------------------------------
+% This is ETH_C_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^ca:
+cmchar "The letter ^ca";
+beginchar(eth_^ca,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+penlabels(1,2,2',3,4,6,7); endchar;
+
+
+iff known eth_^cU:
+cmchar "The letter ^cU";
+beginchar(eth_^cU,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+x8=x2r; y8=.25h; rt_half_ellipse(8,1.75u);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_^cI:
+cmchar "The letter ^cI";
+beginchar(eth_^cI,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.5u); rt_half_ellipse(7,1.5u);
+z8=z2'r; rt_half_ellipse(8,1.5u);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_^cA:
+cmchar "The letter ^cA";
+beginchar(eth_^cA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,.5u#);
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(stem,0);
+pos2(vair,-90);
+
+x0=.5w; x0'=x0+.5u; x1=x0+.25u; x2=x0-4u;
+y0=.95h; y0'=y0-.1h; y1=.4h; y2=.15h;
+filldraw stroke z0e{right}...{down}z0'e---z1e..pulled_arc.e(1,2);
+x3=x0'r+oo; x3'=lft x0'l; y3=.65h; y3'=y3-oo;
+rt_wing(3,2u,.02h); lft_wing(3',2u,.02h);
+z4=z2l; t_wing(4);
+penpos6(stem,0); penpos7(stem,0); x6=x0l; x7=x0r; y7=y6=y0;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_^cE:
+cmchar "The letter ^cE";
+beginchar(eth_^cE,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+x8=x2'; bot y8=0; half_ring(8);
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known eth_^ce:
+cmchar "The letter ^ce";
+beginchar(eth_^ce,10u#,cap_height#,0);
+adjust_fit(2.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,0); penpos2(stem,0); penpos2'(stem,0);
+x1=w-4.75u; x2=x1-.75u; x2'=x1; y1=.8h; y2=.075h; bot y2'=0;
+filldraw stroke z1e--z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.55h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.55h; lft_wing(4,2u,.02h);
+
+penpos5(stem,0); penpos5'(stem,5); x5r=x1l; x5'r=x5r+.25u;
+y5=y1; y5'=y5+.15h; filldraw stroke z5e--z5'e;
+
+x6=x5'l; x7=x5'r; y6=y7=y5';
+upside_down_left_wing(6); rt_half_ellipse(7,1.5u);
+penlabels(1,2,2',3,4); endchar;
+
+
+iff known eth_^cO:
+cmchar "The letter ^cO";
+beginchar(eth_^cO,10u#,cap_height#,0);
+adjust_fit(1.5u#,1.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos2'(stem,180);
+pos3(vair,115); pos4(stem,0); pos4'(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.5u; x2'=x2+u;
+x3=x0+.5u; x4r=x1l+2u; x4'r=x4r-u; x5=x1;
+bot y0=0; y0'=.125h; y1=.5h; y2=.7h; y2'=y4'=.85h; y4=.75h; y5=.575h;
+
+filldraw stroke pulled_arc.e(5,4)...z4'e--z2'e{left}...{down}z2e...z1e{down}
+...z0'e{down}..z0e;
+x6=x1l; x6'=lft x1r; y6=.45h; y6'=y6-oo;
+rt_wing(6,2u,.02h); lft_wing(6',2u,.02h);
+
+x7=x4'r+2.5u; x8=x2'r; y7=y4'+.175h; y8=y2'+.15h;
+right_wing_no_bar(7) lft_half_ellipse(8,0);
+pos9(vair,90); pos9'(vair,90); x9=x2'r; x9'=x9-.75u; y9=y2'; y9'=y9+.05h;
+draw z9--z9';
+penlabels(1,2,2',4,4',5,6,7,8,9,9'); endchar;
+
+
+iff known eth_^cuA:
+cmchar "The letter ^cuA";
+beginchar(eth_^cuA,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+
+x20=x2'l; x21=x2'r; y20=y21=y2'; lft_wing(20,2u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(1,2,2',3,4,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf
new file mode 100644
index 00000000000..7da5790236d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf
@@ -0,0 +1,163 @@
+%-------------------------------------------------------------
+% This is ETH_CC.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ca:
+cmchar "The letter Ca";
+beginchar(eth_Ca,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,-.25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.5u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.9h; y1=y0-.2h; y2=.2h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2u; x11=x9l+2u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+
+x14=x1; x15=x11; y14=.5[y0,y2']; y15=y14+.1h;
+draw z14--z15;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_CU:
+cmchar "The letter CU";
+beginchar(eth_CU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.5u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.9h; y1=y0-.2h; y2=.2h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2u; x11=x9l+2u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+x13=x11r; y13=.5(y0-y2'); rt_wing(13,2u,.015h);
+x14=x1; x15=x11; y14=.5[y0,y2']; y15=y14+.1h;
+draw z14--z15;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_CI:
+cmchar "The letter CI";
+beginchar(eth_CI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,0); penpos2(stem,0); pos3(vair,0);
+pos4(vair,90);
+x0l=x4r=.475w; x1=x0-.25u; x2r=w-.75u; x3r=x4r+u;
+bot y0=0; y1=y0+.2h; y2=.7h; top y3=.95h; y4=y3-o;
+filldraw stroke z0e{left}..{up}z1e--z2e{up}...{left}z3e...z4e;
+
+pos5(vair,90); penpos6(stem,180); pos7(vair,270);
+x5=x4; y5=y4; x6r=.75u; y6=y2-.05h; x7=x0; y7=.5h;
+filldraw stroke pulled_arc.e(5,6)..pulled_arc.e(6,7);
+x8=x6; x9=x2; y8=y7+.4(y5-y7); y9=y8+.1h; draw z8--z9;
+x10=x0; bot y10=oo; rt_half_ellipse(10,2u);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known eth_CA:
+cmchar "The letter CA";
+beginchar(eth_CA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,0); penpos2(stem,0); pos3(vair,0);
+pos4(vair,90);
+x0l=x4r=.475w; x1=x0-.25u; x2r=w-.75u; x3r=x4r+1u;
+bot y0=0; y1=y0+.2h; y2=.7h; top y3=.95h; y4=y3-o;
+filldraw stroke z0e{left}..{up}z1e--z2e{up}...{left}z3e...z4e;
+
+pos5(vair,90); penpos6(stem,180); pos7(vair,270);
+x5=x4; y5=y4; x6r=.75u; y6=y2-.05h; x7=x0; y7=.5h;
+filldraw stroke pulled_arc.e(5,6)..pulled_arc.e(6,7);
+x8=x6; x9=x2; y8=y7+.4(y5-y7); y9=y8+.1h; draw z8--z9;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known eth_CE:
+cmchar "The letter CE";
+beginchar(eth_CE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,0); penpos2(stem,0); pos3(vair,0);
+pos4(vair,90);
+x0l=x4r=.475w; x1=x0-.25u; x2r=w-.75u; x3r=x4r+1u;
+bot y0=0; y1=y0+.2h; y2=.7h; top y3=.95h; y4=y3-o;
+filldraw stroke z0e{left}..{up}z1e--z2e{up}...{left}z3e...z4e;
+
+pos5(vair,90); penpos6(stem,180); pos7(vair,270);
+x5=x4; y5=y4; x6r=.75u; y6=y2-.05h; x7=x0; y7=.5h;
+filldraw stroke pulled_arc.e(5,6)..pulled_arc.e(6,7);
+x8=x6; x9=x2; y8=y7+.4(y5-y7); y9=y8+.1h; draw z8--z9;
+x10=x0; bot y10=0; half_ring(10);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known eth_Ce:
+cmchar "The letter Ce";
+beginchar(eth_Ce,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,200); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2u; x2=x1-.5u; x2'=x2+1.5u;
+y0=.7h; y1=y0-.15h; y2=.25h; bot y2'=0; y3=.025h;
+filldraw stroke z0e{left}...z1e..z2e{down}...z2'e---z3;
+
+pos9(vair,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,90);
+x9l=x3l; x10=x9l+2.25u; x11=x9l+2.25u; x12l=x0l;
+y9r=y3l; y10=y9+.2h; y12l=y0r-oo; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...{left}z12e;
+x14=x1; x15=x11; y14=.5[y0,y2']; y15=y14+.1h;
+draw z14--z15;
+penpos16(1.2stem,0); penpos16'(1.2stem,0);
+x16=x0; x16'=x0-.25u; y16=y0+oo; y16'=y0+.25h;
+filldraw stroke z16e--z16'e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,16'); endchar;
+
+
+iff known eth_CO:
+cmchar "The letter CO";
+beginchar(eth_CO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180); pos3(vair,270);
+x0=.6w; x3=x0-u; x1=x0-3u; x2=x1; y0=h; y1r=y0l-.2h; y2=y1r-.15h; y3r=y2r-.15h;
+filldraw stroke pulled_arc.e(0,1)...z2e{down}..{right}z3e;
+
+pos9(stem,0); penpos10(stem,0); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x11=x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h; y11=.5(y12-y9)+y9;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,180); penpos4'(stem,180); pos5(vair,180);
+x4r=x3r-4u; x5=x3; x4'r=x4r-.5u;
+y5=y3r; bot y4=00; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e..z4'e{down}...{right}z4e;
+x14=x1; x15=x11; y14=.5[y0,y3]; y15=y14+.075h;
+filldraw stroke z14--z15;
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf
new file mode 100644
index 00000000000..a3ba69356ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf
@@ -0,0 +1,190 @@
+%-------------------------------------------------------------
+% This is ETH_CC_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^Ca:
+cmchar "The letter ^Ca";
+beginchar(eth_^Ca,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0; y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CU:
+cmchar "The letter ^CU";
+beginchar(eth_^CU,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+x14=x8r; y14=.6h; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CI:
+cmchar "The letter ^CI";
+beginchar(eth_^CI,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x14=x10; y14=y10; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CA:
+cmchar "The letter ^CA";
+beginchar(eth_^CA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w+.25u; x2'=x2-.75u; x3=x2'+.5u; x4r=x2l; x5r=1u; x6r=x5r+.25u;
+x7=x2r-oo; x9r=x8r-u=w-x5r-1.25u; x10r=x9r+.5u;
+y2=.9h; y3=.4h; y2'=y3+.075h; y4r=y2-o; y6=.4h; y5=y6+.15h;
+y7=y2; y8=y2-.2h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e---z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CE:
+cmchar "The letter ^CE";
+beginchar(eth_^CE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,6.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+
+x18=x8r; x18'=x18+2.5u; y18=y8; y18'=y8; draw z18--z18';
+x19=x18'; y19=y18'-.25h; large_ring(19,7);
+
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^Ce:
+cmchar "The letter ^Ce";
+beginchar(eth_^Ce,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,0); penpos2(stem,0); penpos3(stem,0);
+penpos3'(stem,-20); penpos2'(stem,0); penpos5(stem,180); penpos4(stem,180);
+pos6(vair,90); penpos7(stem,0); penpos8(stem,5);
+x0=x2'=x3=hround(.5w); x1=hround(x3-fine); x2l=x3;
+x6=hround(.5w); x5l=hround u; x4r=x5r+.5fine; x8r=w-x5r-1.75u; x7r=w-x5r-1.75u;
+top y0=.9h; bot y3=0; y6l=y0; y7r=y6l-.3h;
+y1=y2=y5=y7; y2'=.25(y2-y3)+y3; y4=y8=y1-.15h;
+
+filldraw stroke z2e..controls z2'e..z3e; filldraw stroke z0e{down}...z1e;
+filldraw stroke z8e...pulled_super_arc.e(7,6)(superpull);
+filldraw stroke z4e...pulled_super_arc.e(5,6)(superpull);
+x11=x3+.25u; y11=y3; jj_ring(11);
+x12=x4+.25u; y12=y4; jj_ring(12);
+x13=x7; y13=y8; jj_ring(13);
+penlabels(0,1,2,3,4,5,5',6,7,8); endchar;
+
+
+iff known eth_^CO:
+cmchar "The letter ^CO";
+beginchar(eth_^CO,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,145);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w; x2'=x2-.25u; x3=x2'+.5u; x4r=x2l; x5'r=2u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.8h; y3=.25h; y2'=y3+.075h; y4r=y2-o; top y6=0; y5=y6+.15h; y5'=y4r-.5h;
+y7=y2; y8=y2-.2h; bot y10=.25h; y9=y10+.075h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke pulled_arc.e(4,5)..z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e..z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CuA:
+cmchar "The letter ^CuA";
+beginchar(eth_^CuA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.25u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+
+x2=x2'+0.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+
+y2=.65h; y2'=.15h; bot y3=.1h;
+y4r=y2-o; y5=.15h; y5'=.35h; bot y6=.1h;
+top y7r=y2-o; y8=y2-.15h; y9=.025h; bot y10=-.05h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6-.25u; y12=y6; jj_ring(12);
+x20=x10l; x21=x10r; y20=y21=y10; lft_wing(20,1.5u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf
new file mode 100644
index 00000000000..7711151ab43
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf
@@ -0,0 +1,186 @@
+%-------------------------------------------------------------
+% This is ETH_CCC2.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_var^Ca:
+cmchar "The variant letter ^Ca";
+beginchar(eth_var^Ca,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0; y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+% x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CU:
+cmchar "The variant letter ^CU";
+beginchar(eth_var^CU,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; %%%%%%%%%%%%% jj_ring(13);
+x14=x8r; y14=.5h; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CI:
+cmchar "The variant letter ^CI";
+beginchar(eth_var^CI,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x14=x10; y14=y10; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CA:
+cmchar "The variant letter ^CA";
+beginchar(eth_var^CA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w+.25u; x2'=x2-.75u; x3=x2'+.5u; x4r=x2l; x5r=1u; x6r=x5r+.25u;
+x7=x2r-oo; x9r=x8r-u=w-x5r-1.25u; x10r=x9r+.5u;
+y2=.9h; y3=.4h; y2'=y3+.075h; y4r=y2-o; y6=.4h; y5=y6+.15h;
+y7=y2; y8=y2-.2h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e---z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; %%%%%%%%%%%%jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CE:
+cmchar "The variant letter ^CE";
+beginchar(eth_var^CE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^Ce:
+cmchar "The variant letter ^Ce";
+beginchar(eth_var^Ce,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,0); penpos2(stem,0); penpos3(stem,0);
+penpos3'(stem,-20); penpos2'(stem,0); penpos5(stem,180); penpos4(stem,180);
+pos6(vair,90); penpos7(stem,0); penpos8(stem,5);
+x0=x2'=x3=hround(.5w); x1=hround(x3-fine); x2l=x3;
+x6=hround(.5w); x5l=hround u; x4r=x5r+.5fine; x8r=w-x5r-1.75u; x7r=w-x5r-1.75u;
+top y0=.9h; bot y3=0; y6l=y0; y7r=y6l-.3h;
+y1=y2=y5=y7; y2'=.25(y2-y3)+y3; y4=y8=y1-.15h;
+
+filldraw stroke z2e..controls z2'e..z3e; filldraw stroke z0e{down}...z1e;
+filldraw stroke z8e...pulled_super_arc.e(7,6)(superpull);
+filldraw stroke z4e...pulled_super_arc.e(5,6)(superpull);
+x11=x3+.25u; y11=y3; jj_ring(11);
+x12=x4+.25u; y12=y4; jj_ring(12);
+x13=x7; y13=y8; %%%%%%%%%%%%jj_ring(13);
+penlabels(0,1,2,3,4,5,5',6,7,8); endchar;
+
+
+iff known eth_var^CO:
+cmchar "The variant letter ^CO";
+beginchar(eth_var^CO,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,145);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w; x2'=x2-.25u; x3=x2'+.5u; x4r=x2l; x5'r=2u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.8h; y3=.25h; y2'=y3+.075h; y4r=y2-o; top y6=0; y5=y6+.15h; y5'=y4r-.5h;
+y7=y2; y8=y2-.2h; bot y10=.25h; y9=y10+.075h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke pulled_arc.e(4,5)..z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e..z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; %%%%%%%%%%%%%%jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CuA:
+cmchar "The variant letter ^CuA";
+beginchar(eth_var^CuA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.25u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+
+y2=.65h; y2'=.15h; bot y3=.1h;
+y4r=y2-o; y5=.15h; y5'=.35h; bot y6=.1h;
+top y7r=y2-o; y8=y2-.15h; y9=.025h; bot y10=-.05h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6-.25u; y12=y6; jj_ring(12);
+x20=x10l; x21=x10r; y20=y21=y10; lft_wing(20,1.5u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf
new file mode 100644
index 00000000000..a550749081a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf
@@ -0,0 +1,244 @@
+%-------------------------------------------------------------
+% This is ETH_D.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_da:
+cmchar "The letter da";
+beginchar(eth_da,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,1u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.025h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+x9=x0; y9=y0; rt_wing(9,0,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dU:
+cmchar "The letter dU";
+beginchar(eth_dU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,4u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+x13=x9l; y13=y0-.1h; rt_wing(13,2u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dI:
+cmchar "The letter dI";
+beginchar(eth_dI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+z13=z12l; rt_half_ellipse(13,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dA:
+cmchar "The letter dA";
+beginchar(eth_dA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dE:
+cmchar "The letter dE";
+beginchar(eth_dE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.25h; y0=y1-.025h; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.025h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+x9=x0-.75u; y9=y0-.025h; dfive_ring(9,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_de:
+cmchar "The letter de";
+beginchar(eth_de,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.025h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+x9=x0; y9=y0; rt_wing(9,0,0);
+x10=x4; y10=y4-.2h; rt_wing(10,1.5u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dO:
+cmchar "The letter dO";
+beginchar(eth_dO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,2u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,180); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-.75u;
+y1=.45h; y0=y1-.05h; y2=.7h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); penpos7(stem,180); penpos8(stem,180);
+x6=x1r; x7=x6-3.5u; x8=x7+.5u;
+y6=y1; y7=.075h; bot y8=0; filldraw stroke z6e{left}..z7e{down}..{right}z8e;
+x9=x0; y9=y0; rt_wing(9,0,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_duA:
+cmchar "The letter duA";
+beginchar(eth_duA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+x20=x12; x21=x20; y20=y21=y12; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_varduA:
+cmchar "The variant letter duA";
+beginchar(eth_varduA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1r; y6=y1; lft_wing(6,u,.025h);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+x20=x0+2u; x21=x20; y20=y21=y0-.175h; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf
new file mode 100644
index 00000000000..95713e6c037
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf
@@ -0,0 +1,277 @@
+%-------------------------------------------------------------
+% This is ETH_DD.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Da:
+cmchar "The letter Da";
+beginchar(eth_Da,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DU:
+cmchar "The letter DU";
+beginchar(eth_DU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+x13=x9l; y13=y0-.1h; rt_wing(13,2u,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DI:
+cmchar "The letter DI";
+beginchar(eth_DI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.75u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+z13=z12l; rt_half_ellipse(13,1.5u);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DA:
+cmchar "The letter DA";
+beginchar(eth_DA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DE:
+cmchar "The letter DE";
+beginchar(eth_DE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0-.75u; y9=y0-(.025h+o); dfive_ring(9,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_De:
+cmchar "The letter De";
+beginchar(eth_De,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+x13=x4r; y13=y4; rt_wing(13,1.5u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DO:
+cmchar "The letter DO";
+beginchar(eth_DO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-.75u;
+y1=.25h; y0=y1-.05h; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); penpos7(stem,180); penpos8(stem,180);
+x6=x1r; x7=x6-3.5u; x8=x7+.5u;
+y6=y1; y7=-.125h; bot y8=-.2h; filldraw stroke z6e{left}..z7e{down}..{right}z8e;
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DuA:
+cmchar "The letter DuA";
+beginchar(eth_DuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.35h; y0=y1+o; y2=.65h; top y3=.9h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.5h; y4=.75h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=0.025; bot y12=-.05h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+
+x20=x12; x21=x20; y20=y21=y12; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_varDuA:
+cmchar "The variant letter DuA";
+beginchar(eth_varDuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1r; y6=y1; lft_wing(6,u,.025h);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+x20=x0+2u; x21=x20; y20=y21=y0-.175h; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf
new file mode 100644
index 00000000000..b81ae32ecac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf
@@ -0,0 +1,138 @@
+%-------------------------------------------------------------
+% This is ETH_F.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_fa:
+cmchar "The letter fa";
+beginchar(eth_fa,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fU:
+cmchar "The letter fU";
+beginchar(eth_fU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.5u; x2l=2u; x3=x2l+u; x3'=w-3u; x4=x3';
+x7=x2; x6=x7+3.5u; x6'=x6+.5u; x5=x7+2.5u; x5'=x5-.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.4h; y4=.4h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3'e;
+rt_half_ellipse(4,0); draw z7--z6;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fI:
+cmchar "The letter fI";
+beginchar(eth_fI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+pos6(vair,270); penpos6'(1.2stem,360);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-1.5u;
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.1h; y5=.1h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; x6'=x6+2.5u; y6=y5; y6'=y6+.25h; filldraw stroke pulled_arc.e(6,6');
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fA:
+cmchar "The letter fA";
+beginchar(eth_fA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); pos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.75u; x2l=2u; x3=x2l+u; x3'=w-4.5u; x4=x3';
+x7=x2; x6=x7+3.75u; x6'=x6+.5u; x5=x7+3.75u; x5'=x5-.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.35h; y4=.35h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3';
+rt_wing(4,2u,-.015h); draw z7..z6;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fE:
+cmchar "The letter fE";
+beginchar(eth_fE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,4.25u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+pos6(vair,270); penpos6'(1.2stem,360);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-1u;
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.1h; y5=.1h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5; y6=y5-.225h; large_ring(6,5);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fe:
+cmchar "The letter fe";
+beginchar(eth_fe,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,1.5u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(1.2stem,180);
+penpos2(stem,180); pos2'(stem,190); %% pos3(vair,270);
+x0=w-2.5u; x0'=x0-2u; x2r=u; x1r=1.5u; x2'r=x2r+.25h; x3=w-3.5u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.5h; y2'=.4h; y3=.4h;
+filldraw stroke z0e...z0'e...z1e..z2e{down}...z2'e---z3;
+x4=x3; y4=y3-o; rt_wing(4,2u,0); x4'=x0l; y4'=y0; r_wing(4');
+
+penpos6(stem,0); penpos6'(stem,0); penpos5(stem,0); penpos5'(stem,0);
+x7=x2; x6=x7+2.75u; x6'=x6+1.5u; x5=x7+3.5u; x5'=x5-.25u;
+y7=.6h+.05h; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+penlabels(0,0',1,2,2',3,4,5,5',6,6',7); endchar;
+
+
+iff known eth_fO:
+cmchar "The letter fO";
+beginchar(eth_fO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(1.2stem,180);
+penpos2(stem,180); pos2'(stem,190); pos3(vair,270); pos4(vair,270);
+x0=w-3u; x0'=x0-1.75u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-3u; x4=x3+2u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.15h; bot y2'=0; y3=y4=.125h;
+filldraw stroke z0e...z0'e...z1e..z2e{down}..z2'e...z3e---z4e;
+x5=x0; y5=y0-.2h; large_ring(5,2);
+x6=x4-.5u; y6=y4; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,100);
+x7=x3-1.25u; x8=x7+.5u; x9=x2l; y7=y3-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,0',1,2,2',3,4,5,5',6,6',7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf
new file mode 100644
index 00000000000..c2d58d0b38a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf
@@ -0,0 +1,141 @@
+%-------------------------------------------------------------
+% This is ETH_FU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_fua:
+cmchar "The letter fua";
+beginchar(eth_fua,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,5.5u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x1l; x20'=x20+2.5u; y20=y20'=y1l; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20,20');
+endchar;
+
+
+iff known eth_fuI:
+cmchar "The letter fuI";
+beginchar(eth_fuI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,5u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x1l; x20'=x20+1.5u; y20=y20'=y1l;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_fuA:
+cmchar "The letter fuA";
+beginchar(eth_fuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); pos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.75u; x2l=2u; x3=x2l+u; x3'=w-4.5u; x4=x3';
+x7=x2; x6=x7+3.75u; x6'=x6+.5u; x5=x7+3.75u; x5'=x5-.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.35h; y4=.35h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3';
+rt_wing(4,2u,.015h); draw z7..z6;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+x20=x5'l; x21=x5'r; y20=y21=y5; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(0,1,2,3,4,5,6);
+endchar;
+
+
+iff known eth_fuE:
+cmchar "The letter fuE";
+beginchar(eth_fuE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,1u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.5u; x2l=2u; x3=x2l+u; x3'=w-3u; x4=x3';
+x7=x2; x6=x7+3.5u; x6'=x6+.5u; x5=x7+2.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.4h; y4=.4h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; y5=-.1h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3'e;
+rt_half_ellipse(4,0); draw z7--z6;
+filldraw stroke z6e{right}..{down}z6'e---z5e;
+penlabels(0,1,2,3,4,5,6);
+
+x10=x5r-.25u; y10=y5; half_ring(10);
+z11=z5l; lft_wing(11,2u,.05h);
+endchar;
+
+
+iff known eth_fue:
+cmchar "The letter fue";
+beginchar(eth_fue,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,4u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x1l; x20'=x20+1.5u; y20=y20'=y1l;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf
new file mode 100644
index 00000000000..73bc7d2abeb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf
@@ -0,0 +1,110 @@
+%-------------------------------------------------------------
+% This is ETH_G.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ga:
+cmchar "The letter ga";
+beginchar(eth_ga,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gU:
+cmchar "The letter gU";
+beginchar(eth_gU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=.5[x1r,x3r]; y6=.45h; rt_wing(6,1.5u,.025h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gI:
+cmchar "The letter gI";
+beginchar(eth_gI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+z6=z1r; rt_half_ellipse(6,1.5u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gA:
+cmchar "The letter gA";
+beginchar(eth_gA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0);
+
+pickup fine.nib; pos1(vair,0); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,5);
+x1=w-7.5u; x2r=w-1.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=.15h; y2=.3h; y3=.75h; y4=.95h;
+filldraw stroke z1e{right}...z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,oo);
+x6=x1; y6=y1+o; lft_wing(6,0,o);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gE:
+cmchar "The letter gE";
+beginchar(eth_gE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x1; y6=y1; half_ring(6);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_ge:
+cmchar "The letter ge";
+beginchar(eth_ge,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10); pos5(vair,105);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u; x5=x4l-1u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h; y5=y4-.025h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e---z5e;
+x6=x5-4.5u; y6=y5-.045h; gfive_ring(6,5,1/9);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gO:
+cmchar "The letter gO";
+beginchar(eth_gO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+penpos4(stem,0);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.7h; y4=.8h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+
+penpos6(stem,0); penpos7(stem,0); penpos8(stem,5);
+x6=x7=x4l; x8=x6-.25u; y6=y4; y7=y6+.15h; y8=y6+.2h;
+filldraw stroke z6e--z7e{up}...{left}z8e;
+x5=x6l; y5=y6; lft_wing(5,.75u,.025h);
+penlabels(1,2,3,4,5,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf
new file mode 100644
index 00000000000..d758146728b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf
@@ -0,0 +1,117 @@
+%-------------------------------------------------------------
+% This is ETH_G.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'ga:
+cmchar "The letter 'ga";
+beginchar(eth_'ga,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gU:
+cmchar "The letter 'gU";
+beginchar(eth_'gU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=.5[x1r,x3r]; y6=.45h; rt_wing(6,1.5u,.025h);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gI:
+cmchar "The letter 'gI";
+beginchar(eth_'gI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+z6=z1r; rt_half_ellipse(6,1.5u);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gA:
+cmchar "The letter 'gA";
+beginchar(eth_'gA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0);
+
+pickup fine.nib; pos1(vair,0); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,5);
+x1=w-7.5u; x2r=w-1.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=.15h; y2=.3h; y3=.675h; y4=.85h;
+filldraw stroke z1e{right}...z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,oo);
+x6=x1; y6=y1+o; lft_wing(6,0,o);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gE:
+cmchar "The letter 'gE";
+beginchar(eth_'gE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x1; y6=y1; half_ring(6);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'ge:
+cmchar "The letter 'ge";
+beginchar(eth_'ge,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10); pos5(vair,105);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u; x5=x4l-1u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h; y5=y4-.025h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e---z5e;
+x6=x5-4.5u; y6=y5-.045h; gfive_ring(6,5,1/9);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gO:
+cmchar "The letter 'gO";
+beginchar(eth_'gO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+penpos4(stem,0);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.6h; y4=.75h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+
+penpos6(stem,0); penpos7(stem,0); penpos8(stem,5);
+x6=x4l; x8=x6+.25u; y6=y4; y8=y6+.15h;
+filldraw stroke z6e--z8e;
+x5=x6l; y5=y6; lft_wing(5,.75u,.025h);
+top_diagonals(8);
+penlabels(1,2,3,4,5,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf
new file mode 100644
index 00000000000..811f0debeff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf
@@ -0,0 +1,145 @@
+%-------------------------------------------------------------
+% This is ETH_GG.MF as of Feb, 1997 by Olaf Kummer
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ga:
+cmchar "The letter Ga";
+beginchar(eth_Ga,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GU:
+cmchar "The letter GU";
+beginchar(eth_GU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=.5[x1r,x3r]; y6=.45h; rt_wing(6,1.5u,.025h);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GI:
+cmchar "The letter GI";
+beginchar(eth_GI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+z6=z1r; rt_half_ellipse(6,1.5u);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GA:
+cmchar "The letter GA";
+beginchar(eth_GA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0);
+
+pickup fine.nib; pos1(vair,0); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,5);
+x1=w-7.5u; x2r=w-1.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=.15h; y2=.3h; y3=.73h; y4=.92h;
+filldraw stroke z1e{right}...z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,oo);
+x6=x1; y6=y1+o; lft_wing(6,0,o);
+
+% BAR
+penpos11(stem,0); x11=x4l-0.5u; y11=y4+0.18h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GE:
+cmchar "The letter GE";
+beginchar(eth_GE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,2.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x1; y6=y1; half_ring(6);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_Ge:
+cmchar "The letter Ge";
+beginchar(eth_Ge,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10); pos5(vair,105);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u; x5=x4l-1u;
+bot y1=0; y2=.1h; y3=.7h; y4=.9h; y5=y4-.025h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e---z5e;
+x6=x5-4.5u; y6=y5-.045h; gfive_ring(6,5,1/9);
+
+% BAR
+penpos11(stem,0); x11=x4l-1u; y11=y4+0.2h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GO:
+cmchar "The letter GO";
+beginchar(eth_GO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+penpos4(stem,0);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.7h; y4=.8h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+
+penpos6(stem,0); penpos7(stem,0); penpos8(stem,5);
+x6=x7=x4l; x8=x6-.25u; y6=y4; y7=y6+.15h; y8=y6+.2h;
+filldraw stroke z6e--z7e{up}...{left}z8e;
+x5=x6l; y5=y6; lft_wing(5,.75u,.025h);
+
+% BAR
+penpos11(stem,0); x11=x8; y11=y8;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,5,7,8,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf
new file mode 100644
index 00000000000..738e602c706
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf
@@ -0,0 +1,126 @@
+%-------------------------------------------------------------
+% This is ETH_GGU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Gua:
+cmchar "The letter Gua";
+beginchar(eth_Gua,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,6.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x3; x7=x6+3u; y6=y7=.55h; draw z6--z7;
+x9=x7; y9=y7-.245h; large_ring(9,2);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_Gue:
+cmchar "The letter Gue";
+beginchar(eth_Gue,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,6u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.25u; y10=y9; y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,0,-.01h);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_GuI:
+cmchar "The letter GuI";
+beginchar(eth_GuI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,7.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.5u; y10=y9-.15h; y10'=y9+.2h;
+y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,1.5u,-.01h);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_GuA:
+cmchar "The letter GuA";
+beginchar(eth_GuA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pickup fine.nib; penpos2(stem,0); penpos3(stem,0); pos4(stem,10);
+x2r=w-2u; x3r=w-.75u; x4l=w-4u; y2=.55h; y3=.85h; y4=.95h;
+filldraw stroke z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,.02h);
+x6=x2; bot y6=y2; lft_wing(6,2u,.055h);
+
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x10l=x2r; x11'l=x10l-.25u; x11l=x11'l+.5u; x10'l=x10l+u;
+y10=y2; bot y11=00; y10'=.85(y10-y11)+y11; y11'=.15(y10-y11)+y11;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4,10,10',11,11'); endchar;
+
+
+iff known eth_GuE:
+cmchar "The letter GuE";
+beginchar(eth_GuE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,2u#);
+
+pickup fine.nib; penpos2(1.2stem,5); penpos3(stem,0); pos4(stem,10);
+x2r=w-3u; x3r=w-.75u; x4l=w-4u; y2=.15h; y3=.775h; y4=.95h;
+filldraw stroke z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,1.5u,.025h);
+x6=x2r-.25u; x7=x2l; y6=y7=y2; half_ring(6); lft_wing(7,2u,.05h);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf
new file mode 100644
index 00000000000..5d7349a4721
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf
@@ -0,0 +1,96 @@
+%-------------------------------------------------------------
+% This is ETH_GU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_gua:
+cmchar "The letter gua";
+beginchar(eth_gua,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,6.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x3; x7=x6+3u; y6=y7=.55h; draw z6--z7;
+x9=x7; y9=y7-.245h; large_ring(9,2);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gue:
+cmchar "The letter gue";
+beginchar(eth_gue,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,6u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.25u; y10=y9; y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,0,-.01h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_guI:
+cmchar "The letter guI";
+beginchar(eth_guI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,7.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.5u; y10=y9-.15h; y10'=y9+.2h;
+y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,1.5u,-.01h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_guA:
+cmchar "The letter guA";
+beginchar(eth_guA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(1u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pickup fine.nib; penpos2(stem,0); penpos3(stem,0); pos4(stem,10);
+x2r=w-2u; x3r=w-.75u; x4l=w-4u; y2=.55h; y3=.85h; y4=.95h;
+filldraw stroke z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,.02h);
+x6=x2; bot y6=y2; lft_wing(6,2u,.055h);
+
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x10l=x2r; x11'l=x10l-.25u; x11l=x11'l+.5u; x10'l=x10l+u;
+y10=y2; bot y11=00; y10'=.85(y10-y11)+y11; y11'=.15(y10-y11)+y11;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11'); endchar;
+
+
+iff known eth_guE:
+cmchar "The letter guE";
+beginchar(eth_guE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,2u#);
+
+pickup fine.nib; penpos2(1.2stem,5); penpos3(stem,0); pos4(stem,10);
+x2r=w-3u; x3r=w-.75u; x4l=w-4u; y2=.15h; y3=.775h; y4=.95h;
+filldraw stroke z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,1.5u,.025h);
+x6=x2r-.25u; x7=x2l; y6=y7=y2; half_ring(6); lft_wing(7,2u,.05h);
+penlabels(1,2,3,4); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf
new file mode 100644
index 00000000000..40cb4cb1a8c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf
@@ -0,0 +1,153 @@
+%-------------------------------------------------------------
+% This is ETH_H.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ha:
+cmchar "The letter ha";
+beginchar(eth_ha,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180);
+penpos2(stem,180); pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(stem,15);
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u;
+x7l=.6w;
+y0=.8h; y1=.7h; y2=.2h; bot y3=0; bot y4=.025h; y5=.3h; y6=.675h; top y7=.9h;
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_hU:
+cmchar "The letter hU";
+beginchar(eth_hU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(stem,15);
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u;x7l=.6w;
+y0=.8h; y1=.7h; y2=.2h; bot y3=0; bot y4=.025h; y5=.3h; y6=.675h; top y7=.9h;
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e;
+x8=x6r; y8=.55h; rt_wing(8,2u,.015h);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_hI:
+cmchar "The letter hI";
+beginchar(eth_hI,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,.5u#);
+
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,0);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=w-x0; x6r=hround(x5r+stem); x8r=.5w; x7r=hround(x8r-stem); x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+x9=x8r; y9=y8; rt_half_ellipse(9,1.5u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_hA:
+cmchar "The letter hA";
+beginchar(eth_hA,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,0);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=w-x0; x6r=hround(x5r+stem); x8r=.5w; x7r=hround(x8r-stem); x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_hE:
+cmchar "The letter hE";
+beginchar(eth_hE,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,10);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+
+x5r=w-x0; x6r=x5r+stem; x8r=.5w; x7r=x8r-stem; x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+
+penpos9(vair,270); pos10(vair,270); penpos11(stem,0);
+penpos12(vair,80); penpos13(vair,80);
+x9l=x8; x10=x9l+1.75u; x11l=x10+1u; x12=x10; x13=x8+1u;
+y9r=y8; y10=y9; y11=.15h; y12=y13=.25h;
+filldraw stroke z9e..z10e{right}..z11e..{left}z12e..z13e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_he:
+cmchar "The letter he";
+beginchar(eth_he,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup fine.nib; penpos0(stem,10); penpos1(stem',0); penpos2(stem,0);
+penpos3(stem,180); penpos4(vair,270); penpos5(1.2stem,360);
+penpos6(1.2stem,10); penpos3'(stem,180);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x0l=hround max(.7u,1.45u-.5curve); x1l=x0l+.3u; x2l=x0l-.5u;
+x3r=x2l+stem; x3'r=x3r-.5u; x4=.5w-.5u; x5r=w-x0+u; x6r=hround(x5r-.75u);
+top y0=h-o; y1=.8h; y2=y3=.6h; y3'=.25h; bot y4r=-oo; y5l=.5h; top y6=h+o;
+filldraw stroke z0e...z1e{down}...z2e;
+filldraw stroke z3e{down}...super_arc.e(3',4) & super_arc.e(4,5)...z6e;
+penlabels(0,1,2,3,3',4,5,6); endchar;
+
+
+iff known eth_hO:
+cmchar "The letter hO";
+beginchar(eth_hO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(1.1stem,0);
+penpos7'(1.2stem,10); pos8(vair,270); pos8'(vair,270); pos9(stem,0);
+penpos10(stem,0); pos11(vair,90);
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u;
+x7l=x6l+o;
+x7'l=x7l-o; x8l=x7r-o; x8'l=x7r+.75u; x9l=x8l+1.75u; x10l=x8l+.75u; x11l=x7;
+y0=.8h; y1=.7h; y2=.2h; bot y3=0; bot y4=.025h; y5=.3h; y6=.675h; top y7=.85h;
+y7'=.9h; y8=.65h; y8'=.65h+o; y9=.75h; y10=.935h; y11=y7';
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e...z7'e;
+filldraw stroke z8e..z8'e...z9e..z10e---z11e;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_huA:
+cmchar "The letter huA";
+beginchar(eth_huA,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,0);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=w-x0; x6r=hround(x5r+stem); x8r=.5w; x7r=hround(x8r-stem); x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+
+x20=x8l; x21=x8r; y20=y21=y8; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(1,2,3,4,5); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf
new file mode 100644
index 00000000000..06c7291a5fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf
@@ -0,0 +1,199 @@
+%-------------------------------------------------------------
+% This is ETH_H_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'ha:
+cmchar "The letter 'ha";
+beginchar(eth_'ha,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hU:
+cmchar "The letter 'hU";
+beginchar(eth_'hU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hI:
+cmchar "The letter 'hI";
+beginchar(eth_'hI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+z14=z11r; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hA:
+cmchar "The letter 'hA";
+beginchar(eth_'hA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=.20h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hE:
+cmchar "The letter 'hE";
+beginchar(eth_'hE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'; bot y12=0; half_ring(12);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'he:
+cmchar "The letter 'he";
+beginchar(eth_'he,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hO:
+cmchar "The letter 'hO";
+beginchar(eth_'hO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; y4=.25h; y5=.7h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf
new file mode 100644
index 00000000000..f5d5f043802
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf
@@ -0,0 +1,164 @@
+%-------------------------------------------------------------
+% This is ETH_H_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^ha:
+cmchar "The letter ^ha";
+beginchar(eth_^ha,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,-.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hU:
+cmchar "The letter ^hU";
+beginchar(eth_^hU,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,3u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+x12=x10r; y12=.5(y10-y11)+.05h; rt_wing(12,1.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hI:
+cmchar "The letter ^hI";
+beginchar(eth_^hI,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,3u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+rt_half_ellipse(11,1.75u);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hA:
+cmchar "The letter ^hA";
+beginchar(eth_^hA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,-.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.25u,.025h);
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(vair,270); penpos10'(stem,0);
+x10=x7+1.5u; x11l=x10-5.5u; x10'=x10+fine; x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=.1h; y10'=.5[y10,y11]; y8=y10-oo; y9=y10+o;
+filldraw stroke z8e..z9e;
+filldraw stroke pulled_super_arc.e(11,10')(superpull)...z10e;
+z12=z11l; t_wing(12);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hE:
+cmchar "The letter ^hE";
+beginchar(eth_^hE,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,2.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+half_ring(11);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^he:
+cmchar "The letter ^he";
+beginchar(eth_^he,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,-.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+penpos3(vair,90); penpos2(stem,180);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x5l; y3=.5[y4,y7]; x2=x3-4u; y2=y7-.15h;
+filldraw stroke pulled_super_arc.e(3,2)(superpull);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hO:
+cmchar "The letter ^hO";
+beginchar(eth_^hO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,-.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,185); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+
+x0=.55w; x1=x0-1u; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0-1.75u; y9=y0-o; nfour_ring(9,0,1/6);
+x12=x2; y12=.5[y1,y2]; lft_wing(12,2.5u,.02h);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf
new file mode 100644
index 00000000000..516a2fb3850
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf
@@ -0,0 +1,217 @@
+%-------------------------------------------------------------
+% This is ETH_HH.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ha:
+cmchar "The letter \d ha";
+beginchar(eth_Ha,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+%%%%%%%%%y7r=.35h; y6l=.55h; y8'=.25[y7,78]; y7'=y7-.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HU:
+cmchar "The letter HU";
+beginchar(eth_HU,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+x9=x7r; y9=y7+.05h; rt_wing(9,2u,.025h);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HI:
+cmchar "The letter HI";
+beginchar(eth_HI,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); pos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+x9=x8r; bot y9=00; rt_half_ellipse(9,1.5u);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HA:
+cmchar "The letter HA";
+beginchar(eth_HA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=.25h; bot y8=00; y4=.225h; y4'=.3h;
+y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.25h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HE:
+cmchar "The letter HE";
+beginchar(eth_HE,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+x9=x8; bot y9=00; half_ring(9);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_He:
+cmchar "The letter He";
+beginchar(eth_He,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+x0'=x0l+.45u; y0'=y0+.075h; lft_half_ellipse(0',0);
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HO:
+cmchar "The letter HO";
+beginchar(eth_HO,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,-.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=.275h; bot y4=0; y8=.275h;
+y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.35h; y6l=.55h; y8'=y8+.25(y7-y8); y7'=y7-.25(y7-y8);
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HuA:
+cmchar "The letter HuA";
+beginchar(eth_HuA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=.25h; bot y8=00; y4=.225h; y4'=.3h;
+y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.25h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+
+x20=x8'l; x21=x8'r; y20=y21=y8; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf
new file mode 100644
index 00000000000..6d12edf8a9d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf
@@ -0,0 +1,150 @@
+%-------------------------------------------------------------
+% This is ETH_HU_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^hua:
+cmchar "The letter ^hua";
+beginchar(eth_^hua,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,6u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+pos12(vair,90); pos12'(vair,90);
+x12=x10'; x12'=x12+2.75u; y12=y12'=.55h; draw z12--z12';
+x13=x12'; y13=y12'-.245h; large_ring(13,2);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hue:
+cmchar "The letter ^hue";
+beginchar(eth_^hue,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+pos12(vair,90); pos12'(vair,90); penpos13(stem,0);
+penpos13'(stem,0); penpos14(stem,0); penpos15(stem,0);
+
+x12=x10; x12'=x12+2.5u; y12=y12'=.55h;
+filldraw stroke z12e--z12'e;
+x13l=x13'l=x12'r; x14l=x13l+.25u; y13=y12; y13'=y13+.25h; y14=y13+.75(y13'-y13);
+filldraw stroke z13e---z14e{up}..{left}z13'e;
+x15=x13r; y15=y13; rt_wing(15,0,-.01h);
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,13,14); endchar;
+
+
+iff known eth_^huI:
+cmchar "The letter ^huI";
+beginchar(eth_^huI,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,6.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+pos12(vair,90); pos12'(vair,90); penpos13(stem,0);
+penpos13'(stem,0); penpos14(stem,0); penpos15(stem,0);
+
+x12=x10; x12'=x12+2.5u; y12=y12'=.55h;
+filldraw stroke z12e--z12'e;
+x13l=x13'l=x12'r; x14l=x13l+.5u;
+y13=y12-.15h; y13'=y12+.2h; y14=y13+.75(y13'-y13);
+filldraw stroke z13e---z14e{up}..{left}z13'e;
+x15=x13r; y15=y13; rt_wing(15,1.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,13,14); endchar;
+
+
+iff known eth_^huA:
+cmchar "The letter ^huA";
+beginchar(eth_^huA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,1.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=.15h; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+x12=x11'l; y12=y11; lft_wing(12,3.5u,.05h);
+
+penpos111(stem,0); penpos12'(stem,0); penpos13(stem,0); penpos13'(stem,0);
+x111l=x13l=x11r-.25u; x12'l=x111l+.5u; x13'l=x13l-.2u;
+y111=y11; y13=-.1h; y12'=y13+.8(y111-y13); y13'=y13+.2(y111-y13);
+filldraw stroke z111e{right}..{down}z12'e---z13'e{down}..{right}z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,12',13,14); endchar;
+
+
+iff known eth_^huE:
+cmchar "The letter ^huE";
+beginchar(eth_^huE,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,2.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=.1h; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+x12=x11'l; y12=y11; lft_wing(12,2.5u,.05h);
+
+x13=x11; y13=y11; half_ring(13);
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,12',13,); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf
new file mode 100644
index 00000000000..322f1e2dfc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf
@@ -0,0 +1,290 @@
+%-------------------------------------------------------------
+% This is ETH_J.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ja:
+cmchar "The letter ja";
+beginchar(eth_ja,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jU:
+cmchar "The letter jU";
+beginchar(eth_jU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+x13=x9l; y13=y0-.1h; rt_wing(13,2u,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jI:
+cmchar "The letter jI";
+beginchar(eth_jI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.75u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+z13=z12l; rt_half_ellipse(13,1.5u);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jA:
+cmchar "The letter jA";
+beginchar(eth_jA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jE:
+cmchar "The letter jE";
+beginchar(eth_jE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0-.75u; y9=y0-(.025h+o); dfive_ring(9,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_je:
+cmchar "The letter je";
+beginchar(eth_je,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+x13=x4r; y13=y4; rt_wing(13,1.5u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jO:
+cmchar "The letter jO";
+beginchar(eth_jO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-.75u;
+y1=.25h; y0=y1-.05h; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); penpos7(stem,180); penpos8(stem,180);
+x6=x1r; x7=x6-3.5u; x8=x7+.5u;
+y6=y1; y7=-.125h; bot y8=-.2h; filldraw stroke z6e{left}..z7e{down}..{right}z8e;
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_juA:
+cmchar "The letter juA";
+beginchar(eth_juA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.35h; y0=y1+o; y2=.65h; top y3=.9h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.5h; y4=.75h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=0.025; bot y12=-.05h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+
+x20=x12; x21=x20; y20=y21=y12; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_varjuA:
+cmchar "The variant letter juA";
+beginchar(eth_varjuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1r; y6=y1; lft_wing(6,u,.025h);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+x20=x0+2u; x21=x20; y20=y21=y0-.175h; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf
new file mode 100644
index 00000000000..905fedd5847
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf
@@ -0,0 +1,180 @@
+%-------------------------------------------------------------
+% This is ETH_K.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ka:
+cmchar "The letter ka";
+beginchar(eth_ka,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kU:
+cmchar "The letter kU";
+beginchar(eth_kU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kI:
+cmchar "The letter kI";
+beginchar(eth_kI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kA:
+cmchar "The letter kA";
+beginchar(eth_kA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=.25h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kE:
+cmchar "The letter kE";
+beginchar(eth_kE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+x12=x4'; bot y12=0; half_ring(12);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_ke:
+cmchar "The letter ke";
+beginchar(eth_ke,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kO:
+cmchar "The letter kO";
+beginchar(eth_kO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf
new file mode 100644
index 00000000000..f809791c813
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf
@@ -0,0 +1,214 @@
+%-------------------------------------------------------------
+% This is ETH_K_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'ka:
+cmchar "The letter 'ka";
+beginchar(eth_'ka,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kU:
+cmchar "The letter 'kU";
+beginchar(eth_'kU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kI:
+cmchar "The letter 'kI";
+beginchar(eth_'kI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kA:
+cmchar "The letter 'kA";
+beginchar(eth_'kA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=.25h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kE:
+cmchar "The letter 'kE";
+beginchar(eth_'kE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+x12=x4'; bot y12=0; half_ring(12);
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'ke:
+cmchar "The letter 'ke";
+beginchar(eth_'ke,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kO:
+cmchar "The letter 'kO";
+beginchar(eth_'kO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf
new file mode 100644
index 00000000000..c63b63aca67
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf
@@ -0,0 +1,189 @@
+%-------------------------------------------------------------
+% This is ETH_KK.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ka:
+cmchar "The letter Ka";
+beginchar(eth_Ka,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KU:
+cmchar "The letter KU";
+beginchar(eth_KU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KI:
+cmchar "The letter KI";
+beginchar(eth_KI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+z14=z11r; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KA:
+cmchar "The letter KA";
+beginchar(eth_KA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=.25h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KE:
+cmchar "The letter KE";
+beginchar(eth_KE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'; bot y12=0; half_ring(12);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_Ke:
+cmchar "The letter Ke";
+beginchar(eth_Ke,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KO:
+cmchar "The letter KO";
+beginchar(eth_KO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf
new file mode 100644
index 00000000000..6979a41e3e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf
@@ -0,0 +1,176 @@
+%-------------------------------------------------------------
+% This is ETH_KKU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Kua:
+cmchar "The letter Kua";
+beginchar(eth_Kua,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,6.5u#)
+
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+
+penpos1(vair,90); penpos2(vair,90);
+x1l=.5[x4',x4]; x2=x1+3u; y1=y2=y4+.6(y5-y4); filldraw stroke z1e--z2e;
+x6=x2; y6=y2-.22h; large_ring(6,0);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_Kue:
+cmchar "The letter Kue";
+beginchar(eth_Kue,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,6u#)
+
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+
+pos15(vair,90); pos15'(vair,90);
+penpos12(1.2stem,0); penpos12'(1.2stem,0); penpos16(1.2stem,0);
+x15=.5[x4,x4']; x15'=x15+2u; y15=y15'=y4+.8(y5-y4); draw z15--z15';
+x12l=x12'l=x15'r; x16l=x12l+fine;
+y12=y15; y12'=y12+.25h; y16=y12+.75(y12'-y12);
+filldraw stroke z12e..controls z16e..z12'e;
+
+x6=x12; y6=y12+oo; rt_wing(6,1.5u,0);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KuI:
+cmchar "The letter KuI";
+beginchar(eth_KuI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,7u#)
+
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+
+pos15(vair,90); pos15'(vair,90); penpos12(1.2stem,0); penpos12'(1.2stem,0);
+penpos16(1.2stem,0); penpos16'(1.2stem,0);
+x15=.5[x4,x4']; x15'=x15+3u; y15=y15'=y4+.6(y5-y4); draw z15--z15';
+x12l=x15'r; x16l=x12l-.5u; x12'l=x12l+.5u; x16'l=x12'l-.25u;
+y12=y15-.1h; y12'=y12+.25h; y16=y12+.25(y12'-y12); y16'=y12+.75(y12'-y12);
+filldraw stroke z12e{left}..{up}z16e---z16'e..z12'e;
+x6=x12; y6=y12+oo; rt_wing(6,2u,0);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KuA:
+cmchar "The letter KuA";
+beginchar(eth_KuA,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3u#,1u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+% right lower leg
+penpos13(stem,0); penpos12(stem,0); penpos13'(stem,0); penpos12'(stem,0);
+x13l=x12l=x4r; x13'l=x13l+fine; x12'l=x12l-fine;
+y13=y4-oo; bot y12=y4-.25h; y13'=y12+.8(y13-y12); y12'=y12+.2(y13-y12);
+filldraw stroke z13e..controls z13'e and z12'e..z12e;
+
+% left wing arm
+penpos14(hair,90); penpos15(hair,90);
+x14r=x4l; x15r=x14r-2.5u; y14=y4; y15=y14-.05h;
+draw z14---z15;
+% left lower wing
+t_wing(15);
+
+penpos9(stem,10); penpos10(stem,0); penpos20(stem,5);
+x9=x7; y9r=y5l; x10r=x9r+.5u; y10=.95h;
+x20r=x10r-.5u; y20=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z20e;
+x21=x20l; y21=y20; lft_half_ellipse(21,1.25u);
+x22=x20r; y22=y20; rt_half_ellipse(22,2u);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10,11,12,13,14,15,20); endchar;
+
+
+iff known eth_KuE:
+cmchar "The letter KuE";
+beginchar(eth_KuE,9u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,3u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+% right lower half ring
+penpos11(stem,0); z11=z4; half_ring(11);
+% left wing arm
+penpos17(hair,90); penpos15(hair,90);
+x17r=x4l; x15r=x17r-2u; y17=y4; y15=y17-.05h;
+draw z17---z15;
+% left lower wing
+t_wing(15);
+
+penpos9(stem,10); penpos10(stem,0); penpos20(stem,5);
+x9=x7; y9r=y5l; x10r=x9r+.5u; y10=.95h;
+x20r=x10r-.5u; y20=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z20e;
+x21=x20l; y21=y20; lft_half_ellipse(21,1.25u);
+x22=x20r; y22=y20; rt_half_ellipse(22,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf
new file mode 100644
index 00000000000..23f7d24fb89
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf
@@ -0,0 +1,168 @@
+%-------------------------------------------------------------
+% This is ETH_KU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_kua:
+cmchar "The letter kua";
+beginchar(eth_kua,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,6.5u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem',0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.55h; bot y4r=0; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=w-1.5u; x4r=x4'r+fine; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); penpos8(stem',180); penpos8'(stem',180);
+x7=x8'=w-x4r; x8=x8'+fine; y7=.4h-oo; bot y8=0; y8'=y4';
+filldraw stroke z4e{z4'e-z4e}...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e...z8e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+penpos1(vair,90); penpos2(vair,90);
+x1l=.5[x4',x4]; x2=x1+3u; y1=y2=y4+.6(y5-y4); filldraw stroke z1e--z2e;
+x6=x2; y6=y2-.22h; large_ring(6,0);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10); endchar;
+
+
+iff known eth_kue:
+cmchar "The letter kue";
+beginchar(eth_kue,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,5u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem',0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.55h; bot y4r=0; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=w-1.5u; x4r=x4'r+fine; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); penpos8(stem',180); penpos8'(stem',180);
+x7=x8'=w-x4r; x8=x8'+fine; y7=.4h-oo; bot y8=0; y8'=y4';
+filldraw stroke z4e{z4'e-z4e}...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e...z8e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+pos11(vair,90); pos11'(vair,90);
+penpos12(1.2stem,0); penpos12'(1.2stem,0); penpos13(1.2stem,0);
+x11=.5[x4,x4']; x11'=x11+1.5u; y11=y11'=y4+.8(y5-y4); draw z11--z11';
+x12l=x12'l=x11'r; x13l=x12l+fine;
+y12=y11; y12'=y12+.25h; y13=y12+.75(y12'-y12);
+filldraw stroke z12e..controls z13e..z12'e;
+
+x6=x12; y6=y12+oo; rt_wing(6,1.5u,0);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10); endchar;
+
+
+iff known eth_kuI:
+cmchar "The letter kuI";
+beginchar(eth_kuI,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,7u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem',0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.55h; bot y4r=0; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=w-1.5u; x4r=x4'r+fine; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); penpos8(stem',180); penpos8'(stem',180);
+x7=x8'=w-x4r; x8=x8'+fine; y7=.4h-oo; bot y8=0; y8'=y4';
+filldraw stroke z4e{z4'e-z4e}...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e...z8e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+pos11(vair,90); pos11'(vair,90); penpos12(1.2stem,0); penpos12'(1.2stem,0);
+penpos13(1.2stem,0); penpos13'(1.2stem,0);
+x11=.5[x4,x4']; x11'=x11+3u; y11=y11'=y4+.6(y5-y4); draw z11--z11';
+x12l=x11'r; x13l=x12l-.5u; x12'l=x12l+.5u; x13'l=x12'l-.25u;
+y12=y11-.1h; y12'=y12+.25h; y13=y12+.25(y12'-y12); y13'=y12+.75(y12'-y12);
+filldraw stroke z12e{left}..{up}z13e---z13'e..z12'e;
+x6=x12; y6=y12+oo; rt_wing(6,2u,0);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10); endchar;
+
+
+iff known eth_kuA:
+cmchar "The letter kuA";
+beginchar(eth_kuA,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,1u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+% right lower leg
+penpos13(stem,0); penpos12(stem,0); penpos13'(stem,0); penpos12'(stem,0);
+x13l=x12l=x4r; x13'l=x13l+fine; x12'l=x12l-fine;
+y13=y4-oo; bot y12=y4-.25h; y13'=y12+.8(y13-y12); y12'=y12+.2(y13-y12);
+filldraw stroke z13e..controls z13'e and z12'e..z12e;
+
+% left wing arm
+penpos14(hair,90); penpos15(hair,90);
+x14r=x4l; x15r=x14r-2.5u; y14=y4; y15=y14-.05h;
+draw z14---z15;
+% left lower wing
+z16=z15; t_wing(16);
+penlabels(1,2,3,4,4',5,6,7,9,10,11,12,13,14,15); endchar;
+
+
+iff known eth_kuE:
+cmchar "The letter kuE";
+beginchar(eth_kuE,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,3u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+% right lower half ring
+penpos12(stem,0); x12=x4; y12=y4; half_ring(12);
+
+% left wing arm
+penpos14(hair,90); penpos15(hair,90);
+x14r=x4l; x15r=x14r-2u; y14=y4; y15=y14-.05h;
+draw z14---z15;
+% left lower wing
+z16=z15; t_wing(16);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10,12,14,15); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf
new file mode 100644
index 00000000000..9ed1f26a195
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf
@@ -0,0 +1,159 @@
+%-------------------------------------------------------------
+% This is ETH_L.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_la:
+cmchar "The letter la";
+beginchar(eth_la,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(.5u#, .25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem;
+rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lU:
+cmchar "The letter lU";
+beginchar(eth_lU,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem;
+rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x2l; y8=y2-.1h; rt_wing(8,2u,.015h);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lI:
+cmchar "The letter lI";
+beginchar(eth_lI,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem;
+rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x0; y8=y0; rt_half_ellipse(8,1.5u);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lA:
+cmchar "The letter lA";
+beginchar(eth_lA,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.5stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7=.25h; bot y0=0; y2=.55h; y6=.5[y7,y3];
+y1=.5[y2,y0]; top y4=h+o; y3=y3'=.45[y4,y2]; y5l=y3-.1h;
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lE:
+cmchar "The letter lE";
+beginchar(eth_lE,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x0-fine; y8=y0; half_ring(8);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_le:
+cmchar "The letter le";
+beginchar(eth_le,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,10); penpos5(stem,-10); penpos6(stem,-10); penpos7(.8stem,18);
+x7l=hround max(.5u,1.25u-.5stem); x5l=x7l+1.5u; x6l=x7l-.25stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7-.75stem=0; bot y0=0; y2=.55h; y1=y6=.5[y2,y0];
+top y4=h+o; y3=y3'=.45[y4,y2]; y5l=y3-.1h;
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x9=x7-.75u; y9=y7+.025h; lsix_ring(9,18)
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lO:
+cmchar "The letter lO";
+beginchar(eth_lO,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#,5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,10); penpos5(stem,-10); penpos6(stem,-10); penpos7(stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u;
+x6l=x7l-.75stem; rt x4r=rt x3'l=.5w;
+x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x2l; x8'=x8+3u; y8=y2; y8'=y2+.05h; draw z8--z8';
+x9=x8'; y9=y8'-.3h; large_ring(9,7);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_luA:
+cmchar "The letter luA";
+beginchar(eth_luA,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.5stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7=.25h; bot y0=0; y2=.55h; y6=.5[y7,y3];
+y1=.5[y2,y0]; top y4=h+o; y3=y3'=.45[y4,y2]; y5l=y3-.1h;
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+
+x20=x0l; x21=x0r; y20=y21=y0; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf
new file mode 100644
index 00000000000..1aeb7d135bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf
@@ -0,0 +1,214 @@
+%-------------------------------------------------------------
+% This is ETH_M.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ma:
+cmchar "The letter ma";
+beginchar(eth_ma,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+penpos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+penpos10'(vair,270); penpos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); penpos13(vair,90); penpos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo;
+y5=.2h-oo; y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h;
+y12=.6h; y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14); endchar;
+
+
+iff known eth_mU:
+cmchar "The letter mU";
+beginchar(eth_mU,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+penpos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+pos10'(vair,270); penpos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); penpos13(vair,90); penpos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo; y5=.2h-oo;
+ y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h; y12=.6h;
+ y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+x15=x11r; y15=.5[y11,y12]; rt_half_ellipse(15,1.5u);
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14); endchar;
+
+
+iff known eth_mI:
+cmchar "The letter mI";
+beginchar(eth_mI,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); pos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+pos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h;
+ y3=.5[y1,y2]; y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+x14l=x13; bot y14=00; rt_half_ellipse(14,1.5u);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,13,14); endchar;
+
+
+iff known eth_mA:
+cmchar "The letter mA";
+beginchar(eth_mA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,1u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); penpos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+penpos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h;
+ y3=.5[y1,y2]; y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12); endchar;
+
+
+iff known eth_mE:
+cmchar "The letter mE";
+beginchar(eth_mE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.25u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); penpos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+penpos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h; y3=.5[y1,y2];
+ y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+x14=x13; bot y14=0; half_ring(14);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,13,14); endchar;
+
+
+iff known eth_me:
+cmchar "The letter me";
+beginchar(eth_me,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90);
+penpos0'(vair,90); penpos2(curve,180); penpos3(curve,180); penpos4(vair,270);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(vair,270); penpos9(curve,0); penpos13(stem,0); penpos13'(stem,0);
+
+x2r=hround u; x9r=hround(w-x2r); x3r=x2r+u;
+x1=lft x6=w-.625w; lft x6'=lft x4=lft x6-fine;
+rt x11=w-.37w; rt x7=rt x11-fine; x8=x0'=x0=.5[x7,x9];
+ x13l=x2r-fine; x13'l=x2r;
+
+y6=.5[y0,y1]-oo; top y0=top y0'=h+o; top y1=.98h+o; y2=y1-.3h; bot y3=y2-.15h;
+y4=y3-.05h; y6'=y4+.05h; y7=.5[y0,y1]; y8=y3+.05h;
+y11=y8+.1h; y9=.5[y0,y3]; bot y13=00; y13'=y13+.15h;
+
+filldraw stroke z0e--super_arc.e(1,2)...z3e...{right}z4e;
+filldraw stroke z6e{down}...z6'e..controls z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..{down}z11e;
+filldraw stroke pulled_super_arc.e(0',9)(superpull)..pulled_arc.e(9,8)..
+pulled_arc.e(8,11);
+penlabels(0,0',1,2,3,4,6,6',7,8,9,11,13,13'); endchar;
+
+
+iff known eth_mO:
+cmchar "The letter mO";
+beginchar(eth_mO,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(curve,180);
+penpos3(curve,180); penpos4(vair,270);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(vair,270); penpos9(curve,0); penpos13(stem,0);
+
+x2r=hround u; x9r=hround(w-x2r); x3r=x2r+u;
+x1=lft x6=w-.6w; lft x6'=lft x4=lft x6-fine;
+rt x11=w-.37w; rt x7=rt x11-fine; x8=x0'=x0=.5[x7,x9]; lft x13=lft x6-u;
+
+y6=.5[y0,y1]-oo; top y0=top y0'=h+o; top y1=.98h+o; y2=y1-.3h; bot y3=y2-.15h;
+y4=y3-.05h; y6'=y4+.05h; y7=.5[y0,y1]; y8=y3+.05h;
+y11=y8+.1h; y9=.5[y0,y3]; bot y13=00;
+
+filldraw stroke z0e--super_arc.e(1,2)...z3e...{right}z4e;
+filldraw stroke z6e{down}...z6'e...{down}z13e;
+pickup fine.nib; filldraw stroke z7e..{down}z11e;
+filldraw stroke pulled_super_arc.e(0',9)(superpull)..pulled_arc.e(9,8)..
+pulled_arc.e(8,11);
+penlabels(0,0',1,2,3,4,6,6',7,8,9,11,13); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf
new file mode 100644
index 00000000000..91049feee3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf
@@ -0,0 +1,87 @@
+%-------------------------------------------------------------
+% This is ETH_MRF.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_mya:
+cmchar "The letter ~mA";
+beginchar(eth_mya,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,1u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); penpos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180);
+penpos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=0.85h+o; y9=0.85h+oo; top y1=.825h+o; y2=y1-.25h; bot y4=.4h;
+ y3=.5[y1,y2]; y5'=y4+oo; y6=.5[y0,y1]-oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=-0.05h; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+
+penpos14(stem,0); penpos15(stem,5);
+x14r=x15r=x7r; y14=y7; y15=y14+0.175h;
+filldraw stroke z14e--z15e;
+
+x16=x15l+.25u; x17=x15r; y16=y17=y15-oo;
+upper_left_wing(16); upper_right_wing(17);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,14,15); endchar;
+
+
+iff known eth_rya:
+cmchar "The letter ~ri";
+beginchar(eth_rya,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,1u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270); penpos5(stem,0); penpos6(stem,10);
+x0l=x1l=w-3u; x2r=u; x3=w-5.5u; x4=w-4.5u; x5r=w-u; x6r=x5r-.5u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=.025h; y4=.065h; y5=.2h; y6=.3h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e..z5e{up}...z6e;
+
+x14=x0l; x15=x0r; y14=y15=y0;
+rt_half_ellipse(14,1.5u); lft_half_ellipse(15,1.5u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fya:
+cmchar "The letter ~fi";
+beginchar(eth_fya,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+pos6(vair,270); penpos6'(1.2stem,360);
+x0l=x1l=w-3u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-1.5u;
+top y0=.95h; y1=.85h; y2=.15h; bot y3=0; y4=.1h; y5=.1h;
+filldraw stroke z0e...z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; x6'=x6+2.5u; y6=y5; y6'=y6+.25h; filldraw stroke pulled_arc.e(6,6');
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+
+x14=x0l; x15=x0r; y14=y15=y0;
+rt_half_ellipse(14,1.5u); lft_half_ellipse(15,1.5u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf
new file mode 100644
index 00000000000..6f5e63ce84e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf
@@ -0,0 +1,195 @@
+%-------------------------------------------------------------
+% This is ETH_MU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_mua:
+cmchar "The letter mua";
+beginchar(eth_mua,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,6.5u#);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); pos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+pos10'(vair,270); pos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90); pos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo; y5=.2h-oo;
+ y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h; y12=.6h;
+ y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x11r; x20'=x20+2.5u; y20=y20'=.5[y11,y12]; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20,20');
+endchar;
+
+
+iff known eth_muI:
+cmchar "The letter muI";
+beginchar(eth_muI,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,5.5u#);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); pos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+pos10'(vair,270); pos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90); pos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo; y5=.2h-oo;
+ y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h; y12=.6h;
+ y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x11r; x20'=x20+1.5u; y20=y20'= .5[y11,y12];
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_muA:
+cmchar "The letter muA";
+beginchar(eth_muA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); pos1(vair,90); pos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); pos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); pos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+pos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h;
+ y3=.5[y1,y2]; y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+
+x20=x13l; x21=x13r; y20=y21=y13; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12); endchar;
+
+
+iff known eth_muE:
+cmchar "The letter muE";
+beginchar(eth_muE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.25u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); pos1(vair,90); pos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); pos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); pos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+pos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h; y3=.5[y1,y2];
+ y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+x14=x13; bot y14=0; half_ring(14);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,13,14);
+
+x20=x13l; y20=y13l; lft_wing(20,2u,.045h);
+penlabels(20);
+endchar;
+
+
+iff known eth_mue:
+cmchar "The letter mue";
+beginchar(eth_mue,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); pos1(vair,90);
+pos0'(vair,90); penpos2(curve,180); penpos3(curve,180); pos4(vair,270);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+pos8(vair,270); penpos9(curve,0); penpos13(stem,0); penpos13'(stem,0);
+
+x2r=hround u; x9r=hround(w-x2r); x3r=x2r+u;
+x1=lft x6=w-.625w; lft x6'=lft x4=lft x6-fine;
+rt x11=w-.37w; rt x7=rt x11-fine; x8=x0'=x0=.5[x7,x9];
+ x13l=x2r-fine; x13'l=x2r;
+
+y6=.5[y0,y1]-oo; top y0=top y0'=h+o; top y1=.98h+o; y2=y1-.3h; bot y3=y2-.15h;
+y4=y3-.05h; y6'=y4+.05h; y7=.5[y0,y1]; y8=y3+.05h;
+y11=y8+.1h; y9=.5[y0,y3]; bot y13=00; y13'=y13+.15h;
+
+filldraw stroke z0e--super_arc.e(1,2)...z3e...{right}z4e;
+filldraw stroke z6e{down}...z6'e..controls z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..{down}z11e;
+filldraw stroke pulled_super_arc.e(0',9)(superpull)..pulled_arc.e(9,8)..
+pulled_arc.e(8,11);
+penlabels(0,0',1,2,3,4,6,6',7,8,9,11,13,13');
+
+pos20(vair,90); pos20'(vair,90);
+x20=x9r; x20'=x20+1.5u; y20=y20'=y9r;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf
new file mode 100644
index 00000000000..2921229a6ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf
@@ -0,0 +1,150 @@
+%-------------------------------------------------------------
+% This is ETH_N.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_na:
+cmchar "The letter na";
+beginchar(eth_na,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,5); penpos4(stem,0); penpos5(stem,0); penpos6(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3l=w-4u; x4l=u; x5l=1.5u; x6l=u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.675h; y5=.925h; y6=.975h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e{left}
+...{up}z4e---z5e{up}...{left}z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_nU:
+cmchar "The letter nU";
+beginchar(eth_nU,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.65h; y5=.7h; y6=.9h; y7=.975h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=w-1.75u; y8=.45h; rt_wing(8,1.25u,0);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_nI:
+cmchar "The letter nI";
+beginchar(eth_nI,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.65h; y5=.7h; y6=.9h; y7=.975h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x0r-.5u; bot y8=o; rt_half_ellipse(8,1.5u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_nA:
+cmchar "The letter nA";
+beginchar(eth_nA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-2u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4;
+y6=y4-.1h; y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+z9=z0; rt_wing(9,0,0);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_nE:
+cmchar "The letter nE";
+beginchar(eth_nE,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.25u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.65h; y5=.7h; y6=.9h; y7=.975h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x0; bot y8=0; half_ring(8);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_ne:
+cmchar "The letter ne";
+beginchar(eth_ne,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); penpos6(stem,0);
+pos7(vair,45);
+x1=.5w; x0l=x1l+.25u; x2r=w-1.25u; x3r=x2r-.5u;
+x4l=w-5u; x5l=x4l-.25u; x6l=w-4.5u; x7=.5w;
+bot y0=0; y1=.075h; y2=.55h; y3=.6h; y4=y3; y5=y4+.025h; y6=.85h; top y7=.95h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e---z4e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x7; y8=y7; lft_wing(8,1.5u,o);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_nO:
+cmchar "The letter nO";
+beginchar(eth_nO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,185); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=.55w; x1=x0-1u; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0-1.75u; y9=y0-o; nfour_ring(9,0,1/6);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_nuA:
+cmchar "The letter nuA";
+beginchar(eth_nuA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,0);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+
+x0=w-5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4;
+y6=y4-.1h; y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0; y9=y0+o; rt_wing(9,0,-o);
+
+x20=x8r; x21=x8l; y20=y21=y8; lft_wing(20,2u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf
new file mode 100644
index 00000000000..1c26b034014
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf
@@ -0,0 +1,176 @@
+%-------------------------------------------------------------
+% This is ETH_NN.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Na:
+cmchar "The letter Na";
+beginchar(eth_Na,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.675h; y6=.875h; y7=.95h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+
+x8=x7l; x9=x7r; y8=y9=y7; lft_half_ellipse(8,1.25u);
+rt_half_ellipse(9,1.75u);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_NU:
+cmchar "The letter NU";
+beginchar(eth_NU,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,2.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.675h; y6=.875h; y7=.95h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+
+x8=x7l; x9=x7r; y8=y9=y7; lft_half_ellipse(8,1.25u);
+rt_half_ellipse(9,1.75u);
+x10=w-1.75u; y10=.45h; rt_wing(10,1.25u,0);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_NI:
+cmchar "The letter NI";
+beginchar(eth_NI,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,2u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.675h; y6=.875h; y7=.95h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+z8=z0r; rt_half_ellipse(8,1.5u);
+x9=x7l; x10=x7r; y9=y10=y7; lft_half_ellipse(9,1.25u);
+rt_half_ellipse(10,1.75u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_NA:
+cmchar "The letter NA";
+beginchar(eth_NA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-4.5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.8h; y1=.8h+.025h; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0; y9=y0+o; rt_wing(9,0,-o);
+penpos10(stem,5); penpos11(stem,5);
+x10=x4-.5u; x11=x10+.25u; y10=y0+o; y11=y0+.2h; filldraw stroke z10e--z11e;
+x12=x11l; x13=x11r; y12=y13=y11; lft_half_ellipse(12,1.5u);
+rt_half_ellipse(13,1.25u);
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
+
+
+iff known eth_NE:
+cmchar "The letter NE";
+beginchar(eth_NE,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.7h; y6=.9h; y7=.975h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x0; bot y8=0; half_ring(8);
+x9=x7l; x10=x7r; y9=y10=y7; lft_half_ellipse(9,1.25u);
+rt_half_ellipse(10,1.75u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_Ne:
+cmchar "The letter Ne";
+beginchar(eth_Ne,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,1u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); penpos6(stem,0);
+pos7(vair,45);
+x1=.5w; x0l=x1l+.25u; x2r=w-1.25u; x3r=x2r-.5u;
+x4l=w-5u; x5l=x4l-.25u; x6l=w-4.5u; x7=.5w;
+bot y0=0; y1=.075h; y2=.5h; y3=.55h; y4=y3; y5=y4+.025h; y6=.75h; top y7=.85h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e---z4e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+
+x8=x7; y8=y7; lft_wing(8,1.5u,o);
+penpos9(stem,0); penpos10(stem,0); x9+.25u=x10=x7; y9=y7; y10=y9+.125h;
+filldraw stroke z9e--z10e;
+x14=x9l+.25u; x15=x9r; y14=y15=y10;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_NO:
+cmchar "The letter NO";
+beginchar(eth_NO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,185); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-4.5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.8h; y1=.8h+.025h; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0-1.75u; y9=y0-.05h; ynseven_ring(9,0,1/6);
+
+penpos10(stem,0); penpos11(stem,7);
+x10=x4-.5u; x11=x10+.25u; y10=y0+o; y11=y0+.2h; filldraw stroke z10e--z11e;
+
+x12=x11l; x13=x11r; y12=y13=y11; lft_half_ellipse(12,1.5u);
+rt_half_ellipse(13,1.25u);
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
+
+
+iff known eth_NuA:
+cmchar "The letter NuA";
+beginchar(eth_NuA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-4.5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.8h; y1=.8h+.025h; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0; y9=y0+o; rt_wing(9,0,-o);
+
+penpos12(stem,0); penpos11(stem,0); x12+.25u=x11=x7; y12=y0; y11=y12+.175h;
+filldraw stroke z12e--z11e;
+x14=x12l+.25u; x15=x12r; y14=y15=y11;
+upper_left_wing(14); upper_right_wing(15);
+x20=x8r; x21=x8l; y20=y21=y8; lft_wing(20,2u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf
new file mode 100644
index 00000000000..07931fb6265
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf
@@ -0,0 +1,495 @@
+%-------------------------------------------------------------
+% This is ETH_NUM.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_100_100:
+cmchar "Ethiopic numeral 10000";
+beginchar(eth_100_100,13u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#);
+
+pickup fine.nib;
+penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,105); penpos4(curve,0); pos5(vair,270);
+penpos0'(stem,180); penpos2'(stem,180);
+x2r = 0; x1=x0; x2r=x0-1.5u; x3=x0+2u; x4r=x0+4.5u; x5=x2l;
+x0'=x0+.5u; x2'r=x2r+.25u;
+y0=.2h; y1=.3h; y2=.6h; top y3=.8h; y5=.45h; y4=.65h;
+bot y0'=.1h; y2'=.4h;
+filldraw stroke z5e{right}..{up}z4e..{left}z3e;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e..z0e{down}..{right}z0'e;
+
+pickup fine.nib;
+penpos20(stem,180); penpos21(stem,180); penpos22(stem,180);
+pos23(vair,105); penpos24(curve,0); pos25(vair,270);
+penpos20'(stem,180); penpos22'(stem,180);
+x24r = w; x21=x20; x22r=x20-1.5u; x23=x20+2u; x24r=x20+4.5u; x25=x22l;
+x20'=x20+.5u; x22'r=x22r+.25u;
+y20=.2h; y21=.3h; y22=.6h; top y23=.8h; y24=.65h; y25=.45h;
+bot y20'=.1h; y22'=.4h;
+filldraw stroke z25e{right}..{up}z24e..{left}z23e;
+filldraw stroke z23e{left}...{down}z22e..z22'e...z21e..z20e{down}..{right}z20'e;
+
+pickup fine.nib;
+pos5'(vair,270); z5'=z1l;
+filldraw stroke z5'e--z25e;
+
+x9=x10=.5[x3,x23]; y9=y10=h+.075h;
+lft_wing(9,2u,.01h); rt_wing(10,1.75u,.01h);
+x11=x12=.5[x0',x20']; bot y11=bot y12=-o;
+lft_wing(11,2u,.01h); rt_wing(12,2.25u,.01h);
+penlabels(0,0',1,2,2',3,4,5, 9,10,11,12, 20,20',21,22,22',23,24,25);
+endchar;
+
+
+iff known eth_100:
+cmchar "Ethiopic numeral 100";
+beginchar(eth_100,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-u#,u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-6.5u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=.1h; y0=.2h; y1=.3h; y2=.6h; y2'=.4h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e..z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.45h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x9=x10=.65w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.25u,.01h);
+x11=x12=.55w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_90:
+cmchar "Ethiopic numeral 90";
+beginchar(eth_90,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); penpos6(stem,0);
+pos7(vair,45);
+
+x1=.5w; x0=x1+.5u; x2r=w-1.25u; x3=x0+1.5u;
+x4l=w-5u; x5l=x4l-.25u; x6l=w-4.5u; x7=.5w;
+bot y0=.1h; y1=.2h; y2=.55h; y3+o=y4=.55h; y5=y4+.025h; y6=.7h; top y7=.8h;
+
+filldraw stroke z0e{left}...{up}z1e---z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x7; y8=y7; lft_wing(8,1.5u,o);
+
+x9=x10=.5w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.25u,.01h);
+x11=x12=.45w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_80:
+cmchar "Ethiopic numeral 80";
+beginchar(eth_80,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(3u#,2.5u#)
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+
+%LEFT STEM
+penpos0(stem,0); penpos1(stem,0); penpos1'(stem,0);
+x0=w-7u; x1=x0-.5u; x1'=x1-.5u;
+y0=.75h-o; y1=.15h; y1'=.15(y0-y1)+y1;
+filldraw stroke z0e--z1'e{down}..{right}z1e;
+
+%RIGHT STEM
+penpos3(stem,0); penpos3'(stem,0); penpos2(stem,0);
+x2=w-x0; x3=x2-.5u; x3'=x3-.5u;
+y2=.75h; y3=.15h; y3'=.15(y2-y3)+y3;
+filldraw stroke z2e--z3'e{down}..{right}z3e;
+
+x4=x0r; x4'=x2l; y4=y0; y4'=y2; draw z4--z4';
+x5=x0l; x6=x2r; y5=y0; y6=y2;
+lft_wing(5,2u,.015h); rt_wing(6,1.5u,.015h);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,1.75u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.75u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_70:
+cmchar "Ethiopic numeral 70";
+beginchar(eth_70,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(stem,180);
+penpos2(stem,180); pos2'(stem,200); pos3(vair,270);
+
+x0=w-3.5u; x0'=x0-1.5u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-4u;
+top y0=.8h; top y0'=y0; y1=.6h; y2=.275h; y2'=.15h-oo; y3=.175h+o;
+filldraw stroke z0e...z0'e{left}...z1e..z2e{down}...z2'e...z3e;
+
+x7=x3; y7=y3; rt_half_ellipse(7,0);
+x8=x0; y8=y0-.225h; large_ring(8,5);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,1,2,2',3); endchar;
+
+
+iff known eth_60:
+cmchar "Ethiopic numeral 60";
+beginchar(eth_60,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pickup fine.nib; penpos1(stem,0); penpos2(stem,0); penpos1'(stem,0);
+penpos2'(stem,0);
+x1=w-5u; x1'=x1-.5u; x2=x1'+u; x2=x2'-.5u;
+top y1=.8h; y2=.3h; y1'=y2'+o=y2+.6(y1-y2);
+filldraw stroke z1e--z1'e; filldraw stroke z2'e--z2e;
+
+x3=x1l; x4=x1r; y3=y4=y1;
+lft_wing(3,2u,.015h); rt_wing(4,2.5u,.015h);
+x5=x2l; x6=x2r; y5=y6=y2;
+lft_wing(5,2.25u,.015h); rt_wing(6,1.5u,.010h);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,6,7); endchar;
+
+
+iff known eth_50:
+cmchar "Ethiopic numeral 50";
+beginchar(eth_50,8.5u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,.5u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(stem,0); penpos9'(stem,0);
+
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x4l=.5w+fine; x8r=w-x0r-stem; x8'r=x8r+.5u; x9r=x8r-.5u; x9'r=x9r-.25u;
+
+top y0=top y8=.75h+o; y3=.45h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3;
+y4=y7=y3+o; bot y9=.1h; y8'=y9+.85(y8-y9); y9'=y9+.1(y8-y9);
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e{right}..{down}z8'e--z9'e{down}..{right}z9e;
+
+x19=x20=.45w; y19=y20=h+.075h;
+lft_wing(19,1.25u,.01h); rt_wing(20,1.25u,.01h);
+x21=x12=.45w; bot y21=bot y12=-o;
+lft_wing(21,1.25u,.01h); rt_wing(12,1.25u,.01h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_40:
+cmchar "Ethiopic numeral 40";
+beginchar(eth_40,13.5u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,-1.25u#);
+
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,0); penpos8'(stem,0); penpos8(stem,0); penpos9(stem,0);
+pos10(vair,270); penpos9'(stem,0); pos11(stem,180);
+
+x0r=hround max(.7u,1.45u-.5curve)+u; x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=.525w; x6r=hround(x5r+fine); x7r=x4l=hround(x5r-.25stem);
+x8r=w-x0r-u; x8'r=x8r+.25u; x9r=x8'r-u; x9'r=x9r-.25u;
+x10r=.75[x5r,x8r]; x11r=x4r-u;
+
+top y0=top y5=top y8=.775h; y3=.45h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=.15h; y8'=y9+.85(y8-y9);
+y9'=y9+.15(y8-y9); y10=y4; y11=y4+.1h;
+
+filldraw stroke pulled_arc.e(11,10); filldraw stroke z5e..controls z6e..z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e{right}..{down}z8'e--z9'e{down}..{right}z9e;
+
+x19=x20=.5w; y19=y20=h+.075h;
+lft_wing(19,1.5u,.01h); rt_wing(20,1.5u,.01h);
+x21=x12=.425w; bot y21=bot y12=-o;
+lft_wing(21,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_30:
+cmchar "Ethiopic numeral 30";
+beginchar(eth_30,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,0);
+if vair < fine.breadth:vair:=fine.breadth; fi
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos1'(stem,0);
+pos2(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos4'(stem,0); pos5(vair,270); penpos6(stem,180);
+penpos7(stem,180); pos8(vair,135);
+
+x0r=x1r=w-1.25u; x0'r=x0r-.5stem; x1'=x1r; x2=(x0l-1.25u); x3l=x4l=(x2-1.25u);
+x4'r=x4l; x5=(x4r-1.25u); x6l=(x5-1.25u); x7l=.5[x5,x6l]; x8l=x5;
+
+y0=.13h+oo; y1=.65h; y0'=.25(y1-y0)+y0; y1'=.75(y1-y0)+y0; y2=.75h;
+y3=y1'; y4=y4'=y0'+.15h; y5=y0'-.1h; y6=y4; y7=y1'; y8=y2;
+
+filldraw stroke z0e..controls z0'e and z1'e..super_arc.e(1,2)..
+super_arc.e(2,3)..z3e{down}...z4e;
+filldraw stroke super_arc.e(8,6) & super_arc.e(6,5) & super_arc.e(5,4');
+
+x9=x10=.575w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_20:
+cmchar "Ethiopic numeral 20";
+beginchar(eth_20,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#); pickup fine.nib;
+
+penpos0(stem,5); penpos0'(stem,0); penpos1(stem,0); penpos1'(stem,0);
+x0=x0'=.5w; x1=x0-2u; x1'=x1-.5u; y0=.775h; y1=.15h; y0'=y1+.8(y0-y1);
+y1'=y1+.15(y0-y1);
+filldraw stroke z0e{down}..z0'e..z1'e{down}..{right}z1e;
+
+pos2(vair,90); penpos2'(stem,0); penpos3(stem,0); penpos3'(stem,0);
+x2=.5[x0,x1']; x2'=x2+3.5u; x3'=x2'+.5u; x3=x3'+.25u;
+y2=.5[y0,y1']; y2'=y2-.05h; y3'=y1'; y3=y1;
+filldraw stroke z2e{right}...z2'e...{down}z3'e..z3e;
+
+x4=x0l; y4=y0l; lft_wing(4,2u,.015h);
+x5=x0r; y5=y0r; rt_wing(5,2u,.015h);
+
+x9=x10=.525w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_10:
+cmchar "Ethiopic numeral 10";
+beginchar(eth_10,10u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0);
+penpos1'(stem,0); penpos0'(stem,0);
+x1=w-5u; x1'=x1-.5u; x0=w-x1; x0'=x0+.5u;
+top y0=.825h; bot y1=.15h; y0'=y1+.85(y0-y1); y1'=y1+.15(y0-y1);
+filldraw stroke z0e{right}..{down}z0'e--z1'e{down}..{right}z1e;
+
+% BOTTOM AND TOP WINGS
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=-o;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+labels(range 0 thru 13); endchar;
+
+
+iff known eth_9:
+cmchar "Ethiopic numeral 9";
+beginchar(eth_9,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180);
+penpos2(stem,180); pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(stem,15);
+
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u; x7l=.6w;
+y0=.7h; y1=.6h; y2=.3h; bot y3=.1h; bot y4=.125h; y5=.4h; y6=.675h; top y7=.8h;
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e;
+
+pos1'(vair,90); pos5'(vair,90); x1'=x1; y1'=y1-.15h; x5'=x6; y5'=y1'+.1h;
+draw z1'--z5';
+
+x9=x10=.5w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.45w; bot y11=bot y12=00;
+lft_wing(11,1.5u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_8:
+cmchar "Ethiopic numeral 8";
+beginchar(eth_8,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0);
+x0=.5w; x1=x0-.5u; y0=.775h; y1=.225h; filldraw stroke z0e--z1e;
+
+x3=x0l; x4=x0r; y3=y4=y0;
+lft_wing(3,1.75u,.015h); rt_wing(4,1.75u,.015h);
+
+x5=x1l; x6=x1r; y5=y6=y1;
+lft_wing(5,1.75u,.015h); rt_wing(6,1.75u,.015h);
+
+% UPPER AND LOWER RING
+x9=x10=.5w; y9=y10=h+.075h;
+lft_wing(9,1.25u,.005h); rt_wing(10,1.25u,.005h);
+x11=x12=.45w; y11=y12=-.05h;
+lft_wing(11,1.25u,.005h); rt_wing(12,1.25u,.005h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_7:
+cmchar "Ethiopic numeral 7";
+beginchar(eth_7,10u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0);
+penpos1'(stem,0); penpos0'(stem,0);
+x1=w-5.5u; x1'=x1-.5u; x0=w-x1+.5u; x0'=x0+.5u;
+top y0=.8h; bot y1=.15h; y0'=y1+.85(y0-y1); y1'=y1+.15(y0-y1);
+filldraw stroke z0e{right}..{down}z0'e--z1'e{down}..{right}z1e;
+x3=x0l; x2=x1; y3=y0; y2=y1;
+lft_wing(3,1.75u,.025h); rt_half_ellipse(2,2.5u);
+
+% BOTTOM AND TOP WINGS
+x9=x10=.575w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+labels(range 0 thru 13); endchar;
+
+
+iff known eth_6:
+cmchar "Ethiopic numeral 6";
+beginchar(eth_6,10u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0);
+penpos1'(stem,0); penpos0'(stem,0);
+x1=w-5.5u; x1'=x1-.5u; x0=w-x1+.5u; x0'=x0+.5u;
+top y0=.75h; bot y1=.1h; y0'=y1+.85(y0-y1); y1'=y1+.15(y0-y1);
+filldraw stroke z0e{right}..{down}z0'e--z1'e{down}..{right}z1e;
+x3=x0l; x2=x1; y3=y0; y2=y1;
+lft_half_ellipse(3,1.75u); half_ring(2);
+
+% BOTTOM AND TOP WINGS
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=-o;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+labels(range 0 thru 13); endchar;
+
+
+iff known eth_5:
+cmchar "Ethiopic numeral 5";
+beginchar(eth_5,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(bar,270); pos4(bar,360);
+lft x0=x1=hround(w-5u); x2l=x0-2.5u; x3l=hround(w-6.5u); x4=w-4u;
+y0=.8h+o; y1=.7h+o; y2=.3h+o; y3=.15h+o; y4=.2h+o;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e;
+
+% RIGHT WING
+x6=x1; y6=y1-.1h+o; rt_wing(6,2u,0);
+
+% RIGHT LOWER WING
+x7=x4; y7=y4; rt_half_ellipse(7,0);
+
+%
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known eth_4:
+cmchar "Ethiopic numeral 4";
+beginchar(eth_4,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#);
+
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+penpos2(stem,180); penpos4(stem,0);
+x2r=u; x4r=w-x2r; x1=x3=.5w;
+y1r=.8h; y3r=.2h; y2l=y4l=.5[y1r,y3r];
+filldraw stroke pulled_arc.e(1,2)..pulled_arc.e(2,3)..
+ pulled_arc.e(3,4)..pulled_arc.e(4,1); % bowl
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_3:
+cmchar "Ethiopic numeral 3";
+beginchar(eth_3,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,1u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0); penpos1'(stem,0);
+x0=x1=w-7u; x1'=x0-.5u;
+y0=.725h; y1=.125h; y1'=y1+.1h; filldraw stroke z0e--z1'e{down}..{right}z1e;
+
+% RIGHT PEAK
+pickup fine.nib; x3=w-6u-fine; y3=y0; rt_wing(3,3.25u,.015h);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_2:
+cmchar "Ethiopic numeral 2";
+beginchar(eth_2,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,1.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); pos1(1.5vair,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.15h; y0=y1-o; y2=.6h; y2'=.45h; top y3=.85h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e;
+
+penpos4(stem,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.7h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1-.5u; y6=y1-oo; half_ring(6);
+
+x9=x10=.625w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.75u,.015h);
+x11=x12=.625w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.75u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_1:
+cmchar "Ethiopic numeral 1";
+beginchar(eth_1,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,u#);
+
+pickup fine.nib; penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0);
+penpos2(stem,0); pos3(stem,0);
+lft x0=lft x1=w-5u; x0'=x0+.5u; x2l=w-8.5u; x3l=w-7u;
+y0=.8h; y0'=y0-.05h; y1=.65h; y2=.25h; bot y3=.1h;
+filldraw stroke z0e{right}..{down}z0'e{down}...z1e...z2e{down}...z3e{right};
+
+pickup fine.nib; x4=w-7u; x5=w-5u; y4=y5=.13h; draw flex(z4,z5);
+
+pickup fine.nib; pos6(vair,135); penpos7(stem,0); pos8(vair,-135);
+x6=x1-1u-fine; x7=x1+2u; x8=x5; y6=.55h+o; y8=y4; y7=.5[y8,y6];
+filldraw stroke super_arc.e(6,7) & super_arc.e(7,8);
+
+x9=x10=.575w; y9=y10=h+.05h;
+lft_wing(9,2u,.015h); rt_wing(10,2u,.015h);
+x11=x12=.5w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,2u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf
new file mode 100644
index 00000000000..a318ccc4fd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf
@@ -0,0 +1,133 @@
+%-------------------------------------------------------------
+% This is ETH_P.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_pa:
+cmchar "The letter pa";
+beginchar(eth_pa,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7); endchar;
+
+
+iff known eth_pU:
+cmchar "The letter pU";
+beginchar(eth_pU,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x5=x1; y5=.4h; rt_half_ellipse(5,1.5u);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_pI:
+cmchar "The letter pI";
+beginchar(eth_pI,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+penpos5(stem,0); x5l=x2; bot y5=00; rt_half_ellipse(5,1.5u);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_pA:
+cmchar "The letter pA";
+beginchar(eth_pA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(2.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,0); penpos1'(stem,0); pos3(vair,-90);
+x1=x2+0.3u=w-5u; x1'=x2; x3=x4=0;
+top y1=h; bot y2=.45h; y1'=.75h; y3=y4=.1h;
+filldraw stroke z1e..controls z1'e..z2e..pulled_arc.e(2,3); p_wing(4);
+
+% WINGS
+x7=x1-.5stem; x8=x1+.5stem; y7=y1-oo; y8=y1;
+lft_wing(7,2.5u,.02h); rt_wing(8,2.5u,.02h);
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known eth_pE:
+cmchar "The letter pE";
+beginchar(eth_pE,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+penpos5(stem,0); x5=x2-fine; bot y5=00; half_ring(5);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_pe:
+cmchar "The letter pe";
+beginchar(eth_pe,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,5); penpos1'(stem,0); penpos2'(stem,0);
+penpos3(stem,0);
+x1=w-4.5u; x2=w-5u; x1'=x1-.5u; x2'=x1'+u; x3=x2-.25u;
+top y1=h; bot y2=0; y1'=y2'=.7h; y3=.1h;
+filldraw stroke z1e--z1'e; filldraw stroke z2'e---z3e{down}..{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7); endchar;
+
+
+iff known eth_pO:
+cmchar "The letter pO";
+beginchar(eth_pO,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(2u#,u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,-15); penpos2'(stem,-15);
+x1=w-5u; x1'=x1; x2'=0; x2=x2';
+top y1=h; bot y2=0; y1'=.65h; y2'=.15h;
+filldraw stroke z1e...z1'e..z2'e..z2e{right};
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf
new file mode 100644
index 00000000000..bd11a329905
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf
@@ -0,0 +1,236 @@
+%-------------------------------------------------------------
+% This is ETH_PP.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Pa:
+cmchar "The letter Pa";
+beginchar(eth_Pa,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PU:
+cmchar "The letter PU";
+beginchar(eth_PU,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x8r; y12=y8; rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PI:
+cmchar "The letter PI";
+beginchar(eth_PI,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,4u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x9; y12=y9; rt_half_ellipse(12,1.75u);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PA:
+cmchar "The letter PA";
+beginchar(eth_PA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PE:
+cmchar "The letter PE";
+beginchar(eth_PE,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x9'; y12=y9; half_ring(12);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_Pe:
+cmchar "The letter Pe";
+beginchar(eth_Pe,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x2; y12=y2; rt_wing(12,2.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PO:
+cmchar "The letter PO";
+beginchar(eth_PO,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=.2h; y9'=y9+.15(y7-y9);
+x7=.45w; x8=.8w; x9=x8+.25u; x9'=x9-.25u;
+filldraw stroke z7e{right}...z8e{down}..z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PuA:
+cmchar "The letter PuA";
+beginchar(eth_PuA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+
+x20=x9'l; x21=x9'r; y20=y21=y9; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf
new file mode 100644
index 00000000000..20cb84bd685
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf
@@ -0,0 +1,159 @@
+%-------------------------------------------------------------
+% This is ETH_PU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_pua:
+cmchar "The letter pua";
+beginchar(eth_pua,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=w-5u; x2=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x2'r; x20'=x20+2.5u; y20=y20'=.4h; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20);
+endchar;
+
+
+iff known eth_puI:
+cmchar "The letter puI";
+beginchar(eth_puI,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=w-5u; x2=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x2'r; x20'=x20+1.5u; y20=y20'=.4h;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_puA:
+cmchar "The letter puA";
+beginchar(eth_puA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(5.0u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+x1=x2+.3u=w-5u; x3l=x4l+.5u=0;
+top y1=h; bot y2=.45h; y3=.15h; y4=0;
+filldraw stroke z1e--z2e & pulled_arc.e(2,3)..z4e;
+
+% WINGS
+x7=x1-.5stem; x8=x1+.5stem; y7=y1-oo; y8=y1;
+lft_wing(7,2.5u,.02h); rt_wing(8,2.5u,.02h);
+penlabels(1,2,3,4,5,6);
+
+x20=x4l; x21=x4r; y20=y21=y4;
+lft_wing(20,1.75u,.015h); rt_wing(21,1.5u,.015h);
+endchar;
+
+
+iff known eth_puX:
+cmchar "The variant letter puA";
+beginchar(eth_puX,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+z20=z2l; lft_wing(20,1.75u,.015h);
+z21=z2r; rt_wing(21,1.5u,.015h);
+endchar;
+
+
+iff known eth_puE:
+cmchar "The letter puE";
+beginchar(eth_puE,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+penpos5(stem,0); x5=x2-fine; bot y5=00; half_ring(5);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5);
+
+z20=z5l; lft_wing(20,2u,.045h);
+penlabels(20);
+endchar;
+
+
+iff known eth_pue:
+cmchar "The letter pue";
+beginchar(eth_pue,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=w-5u; x2=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x2'r; x20'=x20+1.5u; y20=y20'=.4h;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf
new file mode 100644
index 00000000000..c298af0cea7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf
@@ -0,0 +1,422 @@
+%-------------------------------------------------------------
+% This is ETH_PUNC.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known exclamation_mark:
+cmchar "Exclamation mark";
+beginchar(exclamation_mark,5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+iff known spanish_shriek:
+cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+iff known question_mark:
+cmchar "Question mark";
+beginchar(question_mark,8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known spanish_query:
+cmchar "Spanish open question mark";
+beginchar(spanish_query,8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known dollar:
+cmchar "Dollar sign";
+beginchar(dollar,9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known slash:
+cmchar "Slash";
+beginchar(slash,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+
+iff known period:
+cmchar "Period";
+beginchar(period,5u#,dot_size#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_size,0); pos2(dot_size,90);
+lft x1l=hround(.5w-.5dot_size); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+
+iff known zero_hyph:
+cmchar "Invisible hyphen";
+beginchar(zero_hyph,0,0,0);
+endchar;
+
+
+iff known eth_white_space:
+cmchar "Ethiopic white space";
+beginchar(eth_white_space,4u#,0,0);
+endchar;
+
+
+iff known lt_parenthesis:
+cmchar "Left parenthesis";
+beginchar(lt_parenthesis,7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+iff known rt_parenthesis:
+cmchar "Right parenthesis";
+beginchar(rt_parenthesis, 7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+iff known lt_bracket:
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar(lt_bracket,wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known rt_bracket:
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar(rt_bracket,wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known lt_quote:
+cmchar "Opening quote";
+beginchar(lt_quote,5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+
+iff known rt_quote:
+cmchar "Closing quote";
+beginchar(rt_quote,5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+
+iff known lt_quotes:
+cmchar "Opening quotes";
+beginchar(lt_quotes,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+
+iff known rt_quotes:
+cmchar "Closing quotes";
+beginchar(rt_quotes,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+
+iff known less:
+cmchar "French quotation left";
+beginchar(less,7u#,x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+penpos1(stem,10); penpos2(stem,0); penpos3(stem,-10); penpos4(stem,0);
+lft x2=hround(1u)-eps; x1=x3=w-x2; x4=x2+1u;
+bot y1=0; top y3=h; y2=.5[y1,y3]; y4=y2;
+filldraw stroke z1e..controls z4e..z2e..controls z4e..z3e; % diagonals
+labels(1,2,3); endchar;
+
+
+iff known greater:
+cmchar "French quotation right";
+beginchar(greater,7u#,x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+penpos1(stem,-10); penpos2(stem,0); penpos3(stem,10); penpos4(stem,0);
+rt x2=hround(w-1u)+eps; x1=x3=w-x2; x4=x2-1u;
+bot y1=0; top y3=h; y2=.5[y1,y3]; y4=y2;
+filldraw stroke z1e..controls z4e..z2e..controls z4e..z3e; % diagonals
+labels(1,2,3); endchar;
+
+
+iff known eth_full_stop:
+cmchar "Full stop";
+beginchar(eth_full_stop,8u#,fig_height#,0);
+adjust_fit(2u#,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+penlabels(0,1,2,3,4,5,6,7);
+x0'=x1'=3u; x2'=x3'=1u; y0'=.275h; y3'=.25h; y1'=.425h; y2'=.4h;
+filldraw z0'--z1'--z2'--z3'--cycle;
+x4'=x5'=3u; x6'=x7'=1u; y4'=.625h; y7'=.6h; y5'=.775h; y6'=.75h;
+filldraw z4'--z5'--z6'--z7'--cycle;
+penlabels(0',1',2',3',4',5',6',7'); endchar;
+
+
+iff known eth_semicolon:
+cmchar"Semicolon (der-ebe-serez)";
+beginchar(eth_semicolon,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-1.5u; x2=x3=w-3.5u; y0=.325h; y3=.3h; y1=.475h; y2=.45h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1.5u; x6=x7=w-3.5u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+top lft z8=(0,.95h); top rt z9=(w,h); draw z8--z9;
+bot lft z8'=(0,.075h); bot rt z9'=(w,.125h); draw z8'--z9';
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_minus:
+cmchar"Bar";
+beginchar(eth_minus,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup rule.nib;
+lft z1=(0,.5h); rt z2=(w,.55h); draw z1--z2;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_space:
+cmchar "Old style space (nettib)";
+beginchar(eth_space,4u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_preface_colon:
+cmchar "Preface Colon";
+beginchar(eth_preface_colon,9u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=3u; x2=x3=1u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=3u; x6=x7=1u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+lft z11=(w-6u,.5h); rt z12=(w-1u,.55h); draw z11--z12;
+penlabels(0,1,2,3,4,5,6,7,11,12); endchar;
+
+
+iff known eth_three_dot:
+cmchar "Three dot question mark";
+beginchar(eth_three_dot,4u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.1h; y3=.075h; y1=.25h; y2=.225h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.45h; y7=.425h; y5=.6h; y6=.575h;
+filldraw z4--z5--z6--z7--cycle;
+x8=x9=w-1u; x10=x11=w-3u; y8=.8h; y11=.775h; y9=.95h; y10=.925h;
+filldraw z8--z9--z10--z11--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_seven_dot:
+cmchar "Seven dot paragraph terminator";
+beginchar(eth_seven_dot,12u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x20=x21=3u; x22=x23=1u; y20=.275h; y23=.25h; y21=.425h; y22=.4h;
+filldraw z20--z21--z22--z23--cycle;
+x24=x25=3u; x26=x27=1u; y24=.625h; y27=.6h; y25=.775h; y26=.75h;
+filldraw z24--z25--z26--z27--cycle;
+
+x0=x1=7u; x2=x3=5u; y0=.1h; y3=.075h; y1=.25h; y2=.225h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=7u; x6=x7=5u; y4=.45h; y7=.425h; y5=.6h; y6=.575h;
+filldraw z4--z5--z6--z7--cycle;
+x8=x9=7u; x10=x11=5u; y8=.8h; y11=.775h; y9=.95h; y10=.925h;
+filldraw z8--z9--z10--z11--cycle;
+
+x30=x31=11u; x32=x33=9u; y30=.275h; y33=.25h; y31=.425h; y32=.4h;
+filldraw z30--z31--z32--z33--cycle;
+x34=x35=11u; x36=x37=9u; y34=.625h; y37=.6h; y35=.775h; y36=.75h;
+filldraw z34--z35--z36--z37--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,20,21,22,23,24,25,26,27,
+ 30,31,32,33,34,35,36,37);
+endchar;
+
+
+iff known eth_colon:
+cmchar "Colon (ie-kete-lale)";
+beginchar(eth_colon,7u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-2.5u; x2=x3=w-4.5u; y0=.2h; y3=.175h; y1=.35h; y2=.325h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-2.5u; x6=x7=w-4.5u; y4=.7h; y7=.675h; y5=.85h; y6=.825h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+lft z8=(0,.48h); rt z9=(w,.54h); draw z8--z9;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_comma:
+cmchar"Comma (netela-serez)";
+beginchar(eth_comma,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-1.5u; x2=x3=w-3.5u; y0=.175h; y3=.15h; y1=.325h; y2=.3h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1.5u; x6=x7=w-3.5u; y4=.525h; y7=.5h; y5=.675h; y6=.65h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+top lft z8=(0,.85h); top rt z9=(w,.9h); draw z8--z9;
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf
new file mode 100644
index 00000000000..b345102470a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf
@@ -0,0 +1,190 @@
+%-------------------------------------------------------------
+% This is ETH_Q.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_qa:
+cmchar "The letter qa";
+beginchar(eth_qa,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qU:
+cmchar "The letter qU";
+beginchar(eth_qU,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x1; y3=.2h; rt_half_ellipse(3,2u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qI:
+cmchar "The letter qI";
+beginchar(eth_qI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x1; y3=.04h; rt_half_ellipse(3,1.75u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qA:
+cmchar "The letter qA";
+beginchar(eth_qA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); pos2(vair,-90); penpos1'(stem,0); penpos2'(stem,0);
+x1=.5w; x1'=x1+.5u; x2=x1-4u; x2'=x1;
+top y1=h; bot y2=.15h; y1'=.9h; y2'=.4h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e..pulled_arc.e(2',2);
+z3=z2l; t_wing(3);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x1r; x5=x4+3u; x5'=x5+.25u; x6=x1; x7=x1l; x8=x7-3u; x9=x1; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qE:
+cmchar "The letter qE";
+beginchar(eth_qE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x2; bot y3=0; half_ring(3);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qe:
+cmchar "The letter qe";
+beginchar(eth_qe,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x1-.5u; y3=y1+.05h; t_thumb(3);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.74u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qO:
+cmchar "The letter qO";
+beginchar(eth_qO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+bot y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}---
+z0'e{down}..{right}z0e;
+
+% RIGHT AND LEFT RING
+pos10(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos11(1.2stem,0); penpos11'(1.2stem,0);
+penpos8(1.2stem,180);
+x10=x0l; x11=x10+3u; x11'=x11+.25u; x6=x0; x7=x0r; x8=x7-3u; x9=x0; x8'=x8;
+y10=.575h; y9=.525h; y7=y9-.35h; y6=y10-.3h;
+y11=y6+.4(y10-y6); y11'=y6+.5(y10-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,11)
+..pulled_super_arc.e(11',10)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(0,0',1,2,3,4,5,6,7,8,8',9,10,10',11,11'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf
new file mode 100644
index 00000000000..fea8c8bdc85
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf
@@ -0,0 +1,213 @@
+%-------------------------------------------------------------
+% This is ETH_Q_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'qa:
+cmchar "The letter 'qa";
+beginchar(eth_'qa,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qU:
+cmchar "The letter 'qU";
+beginchar(eth_'qU,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x3=x1; y3=.2h; rt_half_ellipse(3,2u);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qI:
+cmchar "The letter 'qI";
+beginchar(eth_'qI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x3=x1; y3=.04h; rt_half_ellipse(3,1.75u);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qA:
+cmchar "The letter 'qA";
+beginchar(eth_'qA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); pos2(vair,-90); penpos2'(stem,0);
+x1=.5w+.25u; x2=x1-4.25u; x2'=x1-0.5u;
+top y1=.9h; bot y2=.15h; y2'=.4h;
+filldraw stroke z1e{down}---z2'e..pulled_arc.e(2',2);
+z3=z2l; t_wing(3);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x1-.25; x5=x4+3.75u; x5'=x5+.25u; x6=x1-.25u;
+x7=x1-.25u; x8=x7-3.75u; x9=x1-.25u; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qE:
+cmchar "The letter 'qE";
+beginchar(eth_'qE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x3=x2; bot y3=0; half_ring(3);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qe:
+cmchar "The letter 'qe";
+beginchar(eth_'qe,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,5); penpos2'(stem,0);
+x1=x2+.25u=.5w; x2'=x2-.5u;
+top y1=.8h; bot y2=0; y2'=.1h;
+filldraw stroke z1e--z2'e{down}..{right}z2e;
+
+% TOP STROKE AND DIAGONALS
+penpos3(stem,0); penpos3'(stem,5); x3r=x1l; x3'r=x3r+.25u;
+y3=y1; y3'=y3+.15h; filldraw stroke z3e--z3'e;
+top_diagonals(3');
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qO:
+cmchar "The letter 'qO";
+beginchar(eth_'qO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+bot y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}---
+z0'e{down}..{right}z0e;
+
+% TOP DIAGONALS
+penpos3'(2vair,0); z3'=z3; top_diagonals(3');
+
+% RIGHT AND LEFT RING
+pos10(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos11(1.2stem,0); penpos11'(1.2stem,0);
+penpos8(1.2stem,180);
+x10=x0l; x11=x10+3u; x11'=x11+.25u; x6=x0; x7=x0r; x8=x7-3u; x9=x0; x8'=x8;
+y10=.575h; y9=.525h; y7=y9-.35h; y6=y10-.3h;
+y11=y6+.4(y10-y6); y11'=y6+.5(y10-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,11)
+..pulled_super_arc.e(11',10)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(0,0',1,2,3,4,5,6,7,8,8',9,10,10',11,11'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf
new file mode 100644
index 00000000000..67385c1676b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf
@@ -0,0 +1,223 @@
+%-------------------------------------------------------------
+% This is ETH_QQ.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Qa:
+cmchar "The letter Qa";
+beginchar(eth_Qa,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QU:
+cmchar "The letter QU";
+beginchar(eth_QU,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x0=x1; y0=.2h; rt_half_ellipse(0,2u);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QI:
+cmchar "The letter QI";
+beginchar(eth_QI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x0=x1; y0=.04h; rt_half_ellipse(0,1.75u);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QA:
+cmchar "The letter QA";
+beginchar(eth_QA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); pos2(vair,-90); penpos2'(stem,0);
+x1=.5w; x2=x1-4u; x2'=x1;
+top y1=h; bot y2=.15h; y2'=.4h;
+filldraw stroke z1e---z2'e..pulled_arc.e(2',2);
+z0=z2l; t_wing(0);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x1r; x5=x4+3u; x5'=x5+.25u; x6=x1; x7=x1l; x8=x7-3u; x9=x1; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QE:
+cmchar "The letter QE";
+beginchar(eth_QE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x0=x2; bot y0=0; half_ring(0);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_Qe:
+cmchar "The letter Qe";
+beginchar(eth_Qe,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(1u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=.85h; bot y2=0; bot y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+penpos3(stem,0); penpos3'(stem,5); x3r=x1l; x3'r=x3r+.25u;
+y3=y1; y3'=y3+.15h; filldraw stroke z3e--z3'e;
+
+% BAR
+x10=x3'l; x11=x3'r; y10=y11=y3';
+upside_down_left_wing(10); rt_half_ellipse(11,1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QO:
+cmchar "The letter QO";
+beginchar(eth_QO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+bot y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}---
+z0'e{down}..{right}z0e;
+
+% TOP
+x17=x3r+4.25u; x18=x3r-1.25u; y17=y3+.175h; y18=y3+.175h;
+right_wing_no_bar(17) lft_half_ellipse(18,0);
+pos19(vair,90); pos19'(vair,90); x19=x3r-1u; x19'=x19-1u; y19=y3-0.05h;
+y19'=y19+.1h;
+draw z19--z19';
+
+% RIGHT AND LEFT RING
+pos10(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos11(1.2stem,0); penpos11'(1.2stem,0);
+penpos8(1.2stem,180);
+x10=x0l; x11=x10+3u; x11'=x11+.25u; x6=x0; x7=x0r; x8=x7-3u; x9=x0; x8'=x8;
+y10=.575h; y9=.525h; y7=y9-.35h; y6=y10-.3h;
+y11=y6+.4(y10-y6); y11'=y6+.5(y10-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,11)
+..pulled_super_arc.e(11',10)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(0,0',1,2,3,4,5,6,7,8,8',9,10,10',11,11'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf
new file mode 100644
index 00000000000..4e778c17f71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf
@@ -0,0 +1,186 @@
+%-------------------------------------------------------------
+% This is ETH_QQU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Qua:
+cmchar "The letter Qua";
+beginchar(eth_Qua,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos10(vair,90); pos10'(vair,90);
+x10=x2; x10'=x6+2.5u; y10=y10'=.3h; draw z10--z10';
+x11=x10'; y11=y10'-.245h; large_ring(11,7);
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_Que:
+cmchar "The letter Que";
+beginchar(eth_Que,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,5.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.25u; y10=y19;
+y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,0,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_QuI:
+cmchar "The letter QuI";
+beginchar(eth_QuI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,6.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.5u; y10=y19-.1h;
+y10'=y19+.2h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,1u,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_QuA:
+cmchar "The letter QuA";
+beginchar(eth_QuA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+penpos11(stem,0); penpos12(stem,0); penpos13(stem,0); penpos13'(stem,0);
+x10=x2'l; y10=y2; lft_wing(10,.5u,.015h);
+x11l=x13l=x2r; x12l=x11l+.5u; x13'l=x13l-.2u;
+y11=y2; y13=-.1h; y12=y13+.8(y11-y13); y13'=y13+.2(y11-y13);
+filldraw stroke z11e{right}..{down}z12e---z13'e{down}..{right}z13e;
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
+
+
+iff known eth_QuE:
+cmchar "The letter QuE";
+beginchar(eth_QuE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+x10=x2'l; y10=y2; lft_wing(10,2u,.045h);
+x11=x2; y11=y2; half_ring(11);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf
new file mode 100644
index 00000000000..ec1b068e6bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf
@@ -0,0 +1,166 @@
+%-------------------------------------------------------------
+% This is ETH_QU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_qua:
+cmchar "The letter qua";
+beginchar(eth_qua,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos10(vair,90); pos10'(vair,90);
+x10=x2; x10'=x6+2.5u; y10=y10'=.3h; draw z10--z10';
+x11=x10'; y11=y10'-.245h; large_ring(11,7);
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_que:
+cmchar "The letter que";
+beginchar(eth_que,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,5.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.25u; y10=y19;
+y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,0,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_quI:
+cmchar "The letter quI";
+beginchar(eth_quI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,6.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.5u; y10=y19-.1h;
+y10'=y19+.2h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,1u,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_quA:
+cmchar "The letter quA";
+beginchar(eth_quA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=.15h; y1'=.9h; y2'=.25h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+penpos11(stem,0); penpos12(stem,0); penpos13(stem,0); penpos13'(stem,0);
+x10=x2'l; y10=y2; lft_wing(10,.5u,.015h);
+x11l=x13l=x2r; x12l=x11l+.5u; x13'l=x13l-.2u;
+y11=y2; y13=-.1h; y12=y13+.8(y11-y13); y13'=y13+.2(y11-y13);
+filldraw stroke z11e{right}..{down}z12e---z13'e{down}..{right}z13e;
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
+
+
+iff known eth_quE:
+cmchar "The letter quE";
+beginchar(eth_quE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=.05h; y1'=.9h; y2'=.15h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+x10=x2'l; y10=y2; lft_wing(10,2u,.045h);
+x11=x2; y11=y2; half_ring(11);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf
new file mode 100644
index 00000000000..c20d51e8d29
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf
@@ -0,0 +1,131 @@
+%-------------------------------------------------------------
+% This is ETH_R.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ra:
+cmchar "The letter ra";
+beginchar(eth_ra,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,187); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,360);
+x0l=w-2u; x1l=x0l-.25u; x2r=u; x3r=w-6u; x4=w-4u;
+top y0=.95h; y1=.8h; y2=.2h; bot y3=0; y4=.075h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e{right}..z4e;
+x11=x4; y11=y4; rt_half_ellipse(11,0);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_rU:
+cmchar "The letter rU";
+beginchar(eth_rU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,-u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); penpos5(stem,0); penpos6(stem,0);
+penpos5'(stem,0);
+lft x0=lft x1=hround(w-6u); x2l=u; x3l=w-6.5u; x4=x3;
+x5=x6=x4-.75u; x5'=x5-.5u;
+top y0=.95h; y1=.85h; y2=.45h; y3=.35h; y5=.35h; y4=.35h;
+bot y6=0; y5'=y6+.075h;
+
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e{right};
+rt_wing(4,2u,.015h);
+filldraw stroke z5e---z5'e...z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_rI:
+cmchar "The letter rI";
+beginchar(eth_rI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270); penpos5(stem,0); penpos6(stem,10);
+x0l=x1l=w-1.5u; x2r=u; x3=w-5.5u; x4=w-4.5u; x5r=w-u; x6r=x5r-.5u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=.025h; y4=.065h; y5=.2h; y6=.3h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e..z5e{up}...z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_rA:
+cmchar "The letter rA";
+beginchar(eth_rA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270);
+x0l=w-3.75u; x1l=x0l; x2r=u; x3=w-7u; x4=w-6u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=00; y4=.05h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e;
+
+penpos5(1.3stem,195); pos6(vair,90);
+x5=x4; x6=x5+1.5u; y5=y4; y6=y5+.25h; filldraw stroke pulled_arc.e(6,5);
+x7=x6; y7=y6; rt_wing(7,2u,.015h);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_rE:
+cmchar "The letter rE";
+beginchar(eth_rE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos0(stem,187); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,360);
+x0l=w-2u; x1l=x0l-.25u; x2r=u; x3r=w-6u; x4=w-4u;
+top y0=.95h; y1=.8h; y2=.2h; bot y3=0; y4=.075h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e{right}..z4e;
+x5=x4; y5=y4; large_ring(5,10);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_re:
+cmchar "The letter re";
+beginchar(eth_re,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(stem,180);
+penpos2(stem,180); pos2'(stem,200); pos3(vair,270);
+x0=w-3.5u; x0'=x0-1.5u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-4u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.175h; y2'=.05h-oo; y3=.075h+o;
+filldraw stroke z0e...z0'e{left}...z1e..z2e{down}...z2'e...z3e;
+x7=x3; y7=y3; rt_half_ellipse(7,0);
+x8=x0l; y8=y0; r_wing(8);
+penlabels(0,1,2,2',3); endchar;
+
+
+iff known eth_rO:
+cmchar "The letter rO";
+beginchar(eth_rO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(stem,180);
+penpos2(stem,180); pos2'(stem,200); pos3(vair,270);
+
+x0=w-3.5u; x0'=x0-1.5u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-4u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.175h; y2'=.05h-oo; y3=.075h+o;
+filldraw stroke z0e...z0'e{left}...z1e..z2e{down}...z2'e...z3e;
+x7=x3; y7=y3; rt_half_ellipse(7,0);
+x8=x0; y8=y0-.225h; large_ring(8,5);
+penlabels(0,1,2,2',3); endchar;
+
+
+iff known eth_ruA:
+cmchar "The letter ruA";
+beginchar(eth_ruA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270);
+x0l=w-3.75u; x1l=x0l; x2r=u; x3=w-7u; x4=w-6u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=00; y4=.05h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e;
+
+penpos5(1.3stem,195); pos6(vair,90);
+x5=x4; x6=x5+1.5u; y5=y4; y6=y5+.25h; filldraw stroke pulled_arc.e(6,5);
+x7=x6; y7=y6; rt_wing(7,2u,.015h);
+
+x14=x0r+.25u; x15=x0l; y14=y15=y0-oo;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf
new file mode 100644
index 00000000000..1a4244590a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf
@@ -0,0 +1,201 @@
+%-------------------------------------------------------------
+% This is ETH_S.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_sa:
+cmchar "The letter sa";
+beginchar(eth_sa,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sU:
+cmchar "The letter sU";
+beginchar(eth_sU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+x6=x3r; y6=.45h; rt_wing(6,2u,0);
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sI:
+cmchar "The letter sI";
+beginchar(eth_sI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+z6=z4r; rt_half_ellipse(6,1.25u);
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sA:
+cmchar "The letter sA";
+beginchar(eth_sA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sE:
+cmchar "The letter sE";
+beginchar(eth_sE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+x6=x4; bot y6=0; half_ring(6);
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_se:
+cmchar "The letter se";
+beginchar(eth_se,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(1.3stem,5); penpos10(1.3stem,5);
+x9=.5w-.5u; x10=x9-1.5u; bot y9=y5l; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sO:
+cmchar "The letter sO";
+beginchar(eth_sO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=.35h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_suA:
+cmchar "The letter suA";
+beginchar(eth_suA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+x20=x4l; x21=x4r; y20=y21=y4; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf
new file mode 100644
index 00000000000..0f97cd19ae5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf
@@ -0,0 +1,220 @@
+%-------------------------------------------------------------
+% This is ETH_S_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'sa:
+cmchar "The letter 'sa";
+beginchar(eth_'sa,14u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,-.75u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,185);
+penpos4(vair,270); penpos4'(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve)+.5u; x3r=x4'l=x0r; x1r=x0r+stem;
+x2r=x0r-2stem; x8r=w-x0r-1u; x5=.5[x8r,x0r]; x6r=hround(x5r+.25stem);
+x7r=x4l=hround(x5r-.5stem); x9r=x8r-.25stem; x8'r=x8r+.25stem;
+x10r=.35[x5r,x8r]; x11r=x4r-u;
+
+top y0= top y5=top y8=.8h; y3=.2h; y4'=y3-oo; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+.1h; y9=y4+.15h; y8'=.5[y8,y9]; y10=y9-.1h;
+y11=y10+.1h;
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e;
+filldraw stroke z4'e---z4e;
+filldraw stroke z8e...super_arc.e(8',10)...z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sU:
+cmchar "The letter 'sU";
+beginchar(eth_'sU,14u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,2.5u#);
+
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,185);
+penpos4(vair,270); penpos4'(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve)+.5u; x3r=x4'l=x0r; x1r=x0r+stem;
+x2r=x0r-2stem; x8r=w-x0r-.5stem; x5=.5[x8r,x0r]; x6r=hround(x5r+.25stem);
+x7r=x4l=hround(x5r-.5stem); x12=x9r=x8r-.25stem; x8'r=x8r+.25stem;
+x10r=.35[x5r,x8r]; x11r=x4r-u;
+
+top y0= top y5=top y8=.8h; y3=.2h; y4'=y3-oo; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+.1h; y9=y4+.15h; y8'=.5[y8,y9]; y10=y9-.1h;
+y11=y10+.1h; y12=y9;
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e;
+filldraw stroke z4'e---z4e;
+filldraw stroke z8e...super_arc.e(8',10)...z11e;
+rt_wing(12,2u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sI:
+cmchar "The letter 'sI";
+beginchar(eth_'sI,14u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,.5u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=hround(.5w-.5u); x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+rt_half_ellipse(9,2u);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sA:
+cmchar "The letter 'sA";
+beginchar(eth_'sA,14u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,-1.5u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=.5w-.5u; x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sE:
+cmchar "The letter 'sE";
+beginchar(eth_'sE,14u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=hround(.5w-.5u); x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u; x12=x9;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h; y12=y9;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+half_ring(12);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'se:
+cmchar "The letter 'se";
+beginchar(eth_'se,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos1(stem,0); penpos0'(stem,0); penpos1'(stem,0);
+penpos2(stem,0); penpos2'(stem,0); penpos3(stem,0); penpos3'(vair,270);
+penpos4(stem,180); penpos5(stem,0); penpos5'(stem,0); penpos6(stem,0);
+pos6'(vair,270); pos7(stem,180);
+
+x0l=x0'l=hround max(.5u,1.25u-.5curve); x1l=x0l+4u; x1'l=x1l+.5stem;
+x5l=x6l=w-x0l-2u; x2l=x3l=.5[x1l,x5l]; x2'l=x2l+.25stem;
+x3'=.5[x1l,x2l]; x4=x1-.45u;
+x5'l=x5l+.25stem; x7l=x3l+1.1stem; x6'l=.5[x5l,x7l];
+
+bot y0=00; y0'=.2h; top y1=top y2=top y5=h; y1'=.75h; y3=y4=y1'-.05h;
+y2'=y5'=.5[y2,y3]; y3'=y3-.1h; y6=y1'; y6'=y6-.1h; y7=y1';
+
+filldraw stroke z0e..controls z0'e and z1'e..z1e;
+filldraw stroke z2e..z2'e{z3e-z2e}..z3e;
+filldraw stroke pulled_arc.e(4,3')...z3e;
+%%filldraw stroke z5e...super_arc.e(5',6'); %...z7e;
+filldraw stroke z5e..z5'e..z6'e..z7e;
+penlabels(0,0',1,1',2,3,4,5,5',6,6',7); endchar;
+
+
+iff known eth_'sO:
+cmchar "The letter 'sO";
+beginchar(eth_'sO,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,180); penpos1(stem,180); penpos2(stem,180); penpos3(stem,180);
+penpos4(vair,270);
+x0r=hround max(1.5u,1.45u-.5curve); x1r=x0r+hair; x2r=x0r-stem;
+x3r=x0r+hair; x4r=w-8u;
+top y0=h; y3=.6h; y2=.25(y0-y3)+y3; y1=.75(y0-y3)+y3; y4=.y3;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+
+penpos0'(stem,0); penpos1'(stem,0); penpos5(stem,0); penpos6(stem,0);
+x0'=w-11.5u; x1'=x0'-.5stem; x6=hround .5w; x5=x6+stem;
+y5=.8h; top y6=h; bot y0'=00; y1'=.15h;
+filldraw stroke z0'e..controls z1'e and z5e..z6e;
+
+penpos7(stem,0); penpos8(stem,0); penpos9(stem,0);
+penpos10(vair,270); penpos11(stem,180);
+x7r=x9r=w-x0r; x8r=x7r+.5u; x10=.5[x6,x7r]-fine; x11r=.5[x0',x6]+u;
+top y7=h; y9=.75h; y8=.5[y7,y9]; y10=.65h-o; y11=.7h;
+filldraw stroke pulled_arc.e(11,10)..pulled_arc.e(10,8)..z8e...z7e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_'suA:
+cmchar "The letter 'suA";
+beginchar(eth_'suA,14u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,1.0u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=.5w-.5u; x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+
+x20=x9l; x21=x9r; y20=y21=y9;
+lft_wing(20,2u,.015h); rt_wing(21,1.75u,.015h);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf
new file mode 100644
index 00000000000..9b5d785b9e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf
@@ -0,0 +1,219 @@
+%-------------------------------------------------------------
+% This is ETH_S_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^sa:
+cmchar "The letter ^sa";
+beginchar(eth_^sa,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sU:
+cmchar "The letter ^sU";
+beginchar(eth_^sU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+x13=x4'r; y13=.4h; rt_wing(13,2u,.015h);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sI:
+cmchar "The letter ^sI";
+beginchar(eth_^sI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+z13=z4r; rt_half_ellipse(13,1.5u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sA:
+cmchar "The letter ^sA";
+beginchar(eth_^sA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.45h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...
+ z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sE:
+cmchar "The letter ^sE";
+beginchar(eth_^sE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+x13=x4; y13=y4; half_ring(13);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^se:
+cmchar "The letter ^se";
+beginchar(eth_^se,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(2.25u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,5); penpos10(stem,5);
+x9=x10+1.25u=x5-.25u; bot y9=y5l; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sO:
+cmchar "The letter ^sO";
+beginchar(eth_^sO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; y4=.25h; y5=.75h; y4'=.35h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^suA:
+cmchar "The letter ^suA";
+beginchar(eth_^suA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.45h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...
+ z7e{down}...z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5); x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x14=x10l+.25u; x15=x10r; y14=y15=y10-oo; upper_left_wing(14); upper_right_wing(15);
+x20=x4l; x21=x4r; y20=y21=y4;lft_wing(20,2u,0); rt_wing(21,1.75u,0);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf
new file mode 100644
index 00000000000..6f81d115daa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf
@@ -0,0 +1,209 @@
+%-------------------------------------------------------------
+% This is ETH_SS.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Sa:
+cmchar "The letter Sa";
+beginchar(eth_Sa,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SU:
+cmchar "The letter SU";
+beginchar(eth_SU,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x8r; y12=y8; rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SI:
+cmchar "The letter SI";
+beginchar(eth_SI,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,4u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x9; y12=y9; rt_half_ellipse(12,1.75u);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SA:
+cmchar "The letter SA";
+beginchar(eth_SA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SE:
+cmchar "The letter SE";
+beginchar(eth_SE,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x9'; y12=y9; half_ring(12);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_Se:
+cmchar "The letter Se";
+beginchar(eth_Se,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x2; y12=y2; rt_wing(12,2.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SO:
+cmchar "The letter SO";
+beginchar(eth_SO,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=.2h; y9'=y9+.15(y7-y9);
+x7=.45w; x8=.8w; x9=x8+.25u; x9'=x9-.25u;
+filldraw stroke z7e{right}...z8e{down}..z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SuA:
+cmchar "The letter SuA";
+beginchar(eth_SuA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x20=x9'l; x21=x9'r; y20=y21=y9; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf
new file mode 100644
index 00000000000..969525e6e46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf
@@ -0,0 +1,140 @@
+%-------------------------------------------------------------
+% This is ETH_T.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ta:
+cmchar "The letter ta";
+beginchar(eth_ta,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+penlabels(0,0',1,1',2,2'); endchar;
+
+
+iff known eth_tU:
+cmchar "The letter tU";
+beginchar(eth_tU,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+x3=x1'r; y3=.25h; rt_half_ellipse(3,1.5u);
+penlabels(0,0',1,1',2,2',3); endchar;
+
+
+iff known eth_tI:
+cmchar "The letter tI";
+beginchar(eth_tI,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+x3=x1; y3=.04h; rt_half_ellipse(3,1.5u);
+penlabels(0,0',1,1',2,2',3); endchar;
+
+
+iff known eth_tA:
+cmchar "The letter tA";
+beginchar(eth_tA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.25u#,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(stem,0);
+pos2(vair,-90);
+x0=.5w; x0'=x0+.5u; x1=x0+.25u; x2=x0-4u;
+top y0=h; y0'=y0-.1h; y1=.4h; y2=.15h;
+
+filldraw stroke z0e{right}...{down}z0'e---z1e..pulled_arc.e(1,2);
+x3=x0'r; x3'=lft x0'l; y3=.65h; y3'=y3-oo;
+rt_wing(3,2u,.015h); lft_wing(3',2u,.015h);
+z4=z2l; t_wing(4);
+penlabels(0,0',1,2,3,3',4); endchar;
+
+
+iff known eth_tE:
+cmchar "The letter tE";
+beginchar(eth_tE,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+x3=x1; bot y3=0; half_ring(3);
+penlabels(0,0',1,1',2,2',3); endchar;
+
+
+iff known eth_te:
+cmchar "The letter te";
+beginchar(eth_te,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,0); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=.95h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+
+penpos3(vair,90); x3=x1'l-.25u; y3=y0+o; draw z0---z3;
+x4=x3l+.35u; y4=.95h; left_up_thumb(4);
+penlabels(0,0',1,1',2,2',3,4); endchar;
+
+
+iff known eth_tO:
+cmchar "The letter tO";
+beginchar(eth_tO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}..z0'e{down}..z0e;
+x6=x1l; x6'=lft x1r; y6=.5h; y6'=y6-oo;
+rt_wing(6,2u,.015h); lft_wing(6',2u,.015h);
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_tuA:
+cmchar "The letter tuA";
+beginchar(eth_tuA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.02h); lft_wing(2',2u,.02h);
+x20=x1l; x21=x1r; y20=y21=y1; lft_wing(20,2u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(0,0',1,1',2,2'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf
new file mode 100644
index 00000000000..97becfdcbce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf
@@ -0,0 +1,171 @@
+%-------------------------------------------------------------
+% This is ETH_TT.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ta:
+cmchar "The letter Ta";
+beginchar(eth_Ta,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TU:
+cmchar "The letter TU";
+beginchar(eth_TU,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x8r; y11=.4h; rt_half_ellipse(11,1.5u);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TI:
+cmchar "The letter TI";
+beginchar(eth_TI,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x10; bot y11=0; rt_half_ellipse(11,1.5u);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TA:
+cmchar "The letter TA";
+beginchar(eth_TA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w+.25u; x2'=x2-.75u; x3=x2'+.5u; x4r=x2l; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-u=w-x5r-u; x10r=x9r+.5u;
+y2=.9h; y3=.4h; y2'=y3+.075h;
+y4r=y2-o; y6=.4h; y5=y6+.15h;
+y7=y2; y8=y2-.2h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e---z8e{up}..{left}z7e;
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TE:
+cmchar "The letter TE";
+beginchar(eth_TE,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x10; bot y11=0; half_ring(11);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_Te:
+cmchar "The letter Te";
+beginchar(eth_Te,13u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,0); penpos2(stem,0); penpos3(stem,0);
+penpos3'(stem,-20); penpos2'(stem,0); penpos5(stem,180); penpos4(stem,180);
+penpos6(vair,90); penpos7(stem,0); penpos8(stem,0);
+x0=x2'=x3=hround(.5w); x1=hround(x3-fine); x2l=x3;
+x6=hround(.5w); x5r=hround u; x4r=x5r; x8r=x7r=w-x5r;
+top y0=.9h; bot y3=0; y6=y0; y7=y6-.3h;
+y1=y2=y5=y7; y2'=.25(y2-y3)+y3; y4=y8=y1-.05h;
+
+filldraw stroke z2e..controls z2'e..z3e; filldraw stroke z0e{down}...z1e;
+filldraw stroke z8e...pulled_super_arc.e(7,6)(superpull);
+filldraw stroke z4e...pulled_super_arc.e(5,6)(superpull);
+penlabels(0,1,2,3,4,5,5',6,7,8); endchar;
+
+
+iff known eth_TO:
+cmchar "The letter TO";
+beginchar(eth_TO,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,145);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w; x2'=x2-.25u; x3=x2'+.5u; x4r=x2l; x5'r=2u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.8h; y3=.25h; y2'=y3+.075h;
+y4r=y2-o; top y6=0; y5=y6+.15h; y5'=y4r-.5h;
+y7=y2; y8=y2-.2h; bot y10=.25h; y9=y10+.075h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke pulled_arc.e(4,5)..z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e..z8e{up}..{left}z7e;
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TuA:
+cmchar "The letter TuA";
+beginchar(eth_TuA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.25u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+
+y2=.65h; y2'=.2h; bot y3=.15h; y4r=y2-o; y5=.2h; y5'=.35h; bot y6=.15h;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=-0.05h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+
+x20=x10l; x21=x10r; y20=y21=y10; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf
new file mode 100644
index 00000000000..4bbb19afb5a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf
@@ -0,0 +1,210 @@
+%-----------------------------------------------------------------------------
+% This is ETHIOV.MF in text format as of February, 1993 by Abass B. Alamnehe.
+%-----------------------------------------------------------------------------
+
+iff known eth_va:
+cmchar "The letter va";
+beginchar(eth_va,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vU:
+cmchar "The letter vU";
+beginchar(eth_vU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4'r; y6=.5h; rt_half_ellipse(6,1.5u);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vI:
+cmchar "The letter vI";
+beginchar(eth_vI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+z6=z4r; rt_half_ellipse(6,1.25u);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vA:
+cmchar "The letter vA";
+beginchar(eth_vA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vE:
+cmchar "The letter vE";
+beginchar(eth_vE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4; bot y6=0; half_ring(6);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_ve:
+cmchar "The letter ve";
+beginchar(eth_ve,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.75u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x7r; y6=.6h; lft_wing(6,2u,.015h);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vO:
+cmchar "The letter vO";
+beginchar(eth_vO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; y4=.25h; y5=.95h; y4'=.35h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vuA:
+cmchar "The letter vuA";
+beginchar(eth_vuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+x20=x4l; x21=x4r; y20=y21=y4; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf
new file mode 100644
index 00000000000..7a2618a7e02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf
@@ -0,0 +1,174 @@
+%-------------------------------------------------------------
+% This is ETH_W.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_wa:
+cmchar "The letter wa";
+beginchar(eth_wa,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,0);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,-5); penpos2(vair,90);
+penpos2'(vair,90); penpos3(stem,180); penpos3'(stem,180);
+penpos4(stem,180); penpos5(vair,270);
+penpos6(vair,270); penpos7(vair,270); penpos8(vair,270); penpos9(stem,0);
+penpos10(stem,0); penpos11(vair,90); penpos12(vair,90);
+
+x0l=w-6.3u; x1l=w-7.6u; x2=x0l; x2'l=x0l-u; x3'r=1.25u; x3r=.35u;
+x4r=.35u; x5=w-8u; x6=x1l; x7=x1r; x8=w-4.5u; x9l=w-3.5u; x10l=w-2.65u;
+x11=w-3.5u; x12=x0r;
+
+y0=.8h; y1=.175h; y2r=y0-o; y2'r=y0-oo; y3'=.65h; y3=.4h;
+y4=.275h; y5r=y6r=y7r=y1; y8r=y1; y9=.25h; y10=.675h; y11=.775h; y12=.775h;
+
+filldraw stroke z0e{down}--z1e;
+filldraw stroke z2e..z2'e..tension 1.1..z3'e..z3e..z4e...z5e..z6e;
+filldraw stroke z7e..z8e..z9e..tension 1.3..z10e..z11e..z12e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11,12,13); endchar;
+
+
+iff known eth_wU:
+cmchar "The letter wU";
+beginchar(eth_wU,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,2u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,-5); penpos2(vair,90);
+penpos2'(vair,90); penpos3(stem,180); penpos3'(stem,180);
+penpos4(stem,180); penpos5(vair,270);
+penpos6(vair,270); penpos7(vair,270); penpos8(vair,270); penpos9(stem,0);
+penpos10(stem,0); penpos11(vair,90); penpos12(vair,90);
+
+x0l=w-6.3u; x1l=w-7.6u; x2=x0l; x2'=x0l-u; x3'r=1.25u; x3r=.35u;
+x4r=.35u; x5=w-8u; x6=x1; x7=x1r; x8=w-4.5u; x9l=w-3.5u; x10l=w-2.65u;
+x11=w-3.5u; x12=x0r;
+
+y0=.8h; y1=.175h; y2r=y0-o; y2'r=y0-oo; y3'=.65h; y3=.4h;
+y4=.275h; y5r=y6r=y7r=y1; y8r=y1; y9=.25h; y10=.675h; y11=.775h; y12=.775h;
+
+filldraw stroke z0e--z1e;
+filldraw stroke z2e..z2'e...z3'e...z3e..z4e...z5e..z6e;
+filldraw stroke z7e..z8e..z9e..tension 1.3..z10e..z11e..z12e;
+x13=x9; y13=y1; rt_half_ellipse(13,1.5u);
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11,12,13); endchar;
+
+
+iff known eth_wI:
+cmchar "The letter wI";
+beginchar(eth_wI,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,0);
+penpos2(vair,90); penpos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos5'(vair,270); penpos5(vair,270); penpos6(vair,270); penpos7(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(vair,90); penpos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9=y0+o; y10=y0;
+
+filldraw stroke z0e--z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+x11=x1'r; y11=y1'+o; rt_half_ellipse(11,1.5u);
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_wA:
+cmchar "The letter wA";
+beginchar(eth_wA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+penpos2(vair,90); penpos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos5'(vair,270); penpos5(vair,270); penpos6(vair,270); penpos7(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(vair,90); penpos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9=y0+o; y10=y0;
+
+filldraw stroke z0e---z1e...{right}z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_wE:
+cmchar "The letter wE";
+beginchar(eth_wE,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+penpos2(vair,90); penpos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos5'(vair,270); penpos5(vair,270); penpos6(vair,270); penpos7(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(vair,90); penpos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8u; lft x3r=1.1u;
+x4r=1.1u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.5u; x8'l=w-3.5u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6r=y5; y7r=y6; y8=.65h; y8'=.825h; y9=y0+o; y10=y0;
+
+filldraw stroke z0e---z1e...{right}z1'e;
+filldraw stroke z2e..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+
+z11=z1'; half_ring(11);
+penlabels(0,1,1',2,2',3,4,5,5',6,7,8,8',9,10,11); endchar;
+
+
+iff known eth_we:
+cmchar "The letter we";
+beginchar(eth_we,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,4u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,-5); penpos2(vair,90);
+penpos2'(vair,90); penpos3(stem,180); penpos3'(stem,180);
+penpos4(stem,180); penpos5(vair,270);
+penpos6(vair,270); penpos7(vair,270); penpos8(vair,270); penpos9(stem,0);
+penpos10(stem,0); penpos11(vair,90); penpos12(vair,90);
+
+x0l=w-6.3u; x1l=w-7.6u; x2=x0l; x2'l=x0l-u; x3'r=1.25u; x3r=.35u;
+x4r=.35u; x5=w-8u; x6=x1l; x7=x1r; x8=w-4.5u; x9l=w-3.5u; x10l=w-2.65u;
+x11=w-3.5u; x12=x0r;
+
+y0=.8h; y1=.175h; y2r=y0-o; y2'r=y0-oo; y3'=.65h; y3=.4h;
+y4=.275h; y5r=y6r=y7r=y1; y8r=y1; y9=.25h; y10=.675h; y11=.775h; y12=.775h;
+
+filldraw stroke z0e{down}--z1e;
+filldraw stroke z2e..z2'e..tension 1.1..z3'e..z3e..z4e...z5e..z6e;
+filldraw stroke z7e..z8e..z9e..tension 1.3..z10e..z11e..z12e;
+x13=x10r; y13=.5[y9,y11]; rt_half_ellipse(13,1.5u);
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_wO:
+cmchar "The letter wO";
+beginchar(eth_wO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,1.5u#);
+
+pickup fine.nib;
+penpos0(vair,90); penpos0'(vair,90); penpos1(stem,180);
+penpos2(vair,270); penpos3(vair,270);
+x0=.5w; x0'=x0-fine; x1=x0-3.75u; x2=.5[x1,x0]; x3r=x0l;
+y0=.9h; y0'l=y0-o; y2=.5h; y1=.3(y0-y2)+y2; y3=y2-oo;
+filldraw stroke z0e{left}...pulled_arc.e(0',1)...pulled_arc.e(1,2)...{right}z3e;
+
+penpos4'(stem,0); penpos4(stem,0); penpos5(stem,0); penpos5'(stem,0);
+bot y4=00; y4'=y4+.15h; y5=.5h-o; y5'=.9h;
+x5=x0; x5'=x5+fine; x4r=x4'r=u;
+filldraw stroke z4e..controls z4'e..z5e---z5'e;
+
+penpos6(vair,270); penpos7(vair,270); penpos8(stem,360);
+penpos9(vair,90); penpos10(vair,90);
+x6=w-x3; lft x8=w-x1; x7=w-x2; lft x9=w-x0'+1.25u; x10=w-x0;
+y6=y3; y7=y3; y8=.5(y0-y3)+y2; y9=y10=y0+oo;
+filldraw stroke z6e...pulled_arc.e(7,8)...pulled_arc.e(8,9)..z10e;
+penlabels(1,2,3,4,5,5',6,7,8,9,10,11,12,13); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf
new file mode 100644
index 00000000000..cbf52068696
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf
@@ -0,0 +1,173 @@
+%-------------------------------------------------------------
+% This is ETH_WU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_wua:
+cmchar "The letter wua";
+beginchar(eth_wua,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x5; x20'=x20+2.5u; y20=y20'=.3h; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20,20');
+endchar;
+
+
+iff known eth_wue:
+cmchar "The letter wue";
+beginchar(eth_wue,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,4.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x8r; x20'=x20+1.5u; y20=y20'=y8+.5(y8'-y8);
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_wuI:
+cmchar "The letter wuI";
+beginchar(eth_wuI,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,5.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x8r; x20'=x20+1.5u; y20=y20'=y8+.5(y8'-y8);
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_wuA:
+cmchar "The letter wuA";
+beginchar(eth_wuA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,-.5u#);
+
+% STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u;
+y0=.9h; y1=.25h; bot y1'=.15h;
+filldraw stroke z0e---z1e...z1'e;
+penlabels(1,1');
+
+% RIGHT AND LEFT RING
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+x2=x0; x2'=w-8.25u; lft x3r=.75u; x4r=.75u; x5'=w-8.25u;
+x5=w-7u; x6=w-5.5u; x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u;
+x9=w-4u; x10=x0r;
+bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h; y5'=.475h; y5=y5'+o;
+y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(2,2',3,3',4,5,6,7,8,9,10,11);
+
+x20=x1l; y20=y1'l;
+lft_wing(20,.5u,.015h);
+penlabels(20);
+
+penpos21(stem,0); penpos22(stem,0); penpos23(stem,0); penpos23'(stem,0);
+x21l=x23l=x1'r; x22l=x21l+.5u; x23'l=x23l-.2u;
+y21=y1'; y23=-.1h; y22=y23+.8(y21-y23); y23'=y23+.2(y21-y23);
+filldraw stroke z21e{right}..{down}z22e---z23'e{down}..{right}z23e;
+penlabels(21,22,23,23');
+endchar;
+
+
+iff known eth_wuE:
+cmchar "The letter wuE";
+beginchar(eth_wuE,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.0u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8u; lft x3r=1.1u;
+x4r=1.1u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.5u; x8'l=w-3.5u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.15h; bot y1'=.05h; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6r=y5; y7r=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+
+x11=x1'; y11=y1'; half_ring(11);
+penlabels(0,1,1',2,2',3,4,5,5',6,7,8,8',9,10,11);
+
+x20=x1l; y20=y1'l; lft_wing(20,2u,.045h);
+penlabels(20);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf
new file mode 100644
index 00000000000..31148b1c2d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf
@@ -0,0 +1,179 @@
+%-------------------------------------------------------------
+% This is ETH_Y.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ya:
+cmchar "The letter ya";
+beginchar(eth_ya,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,0);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_yU:
+cmchar "The letter yU";
+beginchar(eth_yU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,1u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u;y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+x6=x1l; y6=y1; rt_wing(6,2u,.015h);
+penlabels(0,0',1,2,2',3,4,5); endchar;
+
+
+iff known eth_yI:
+cmchar "The letter yI";
+beginchar(eth_yI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,45); pos7(vair,45);
+penpos8(stem,0); penpos9(stem,0); penpos10(stem,0);
+x6=x1l; x7=x6+1.75u; y6=y7=.275h; filldraw stroke z6e--z7e;
+x8l=x9l-.25u=x10l-.25u=x7; y8=.4h; y9=y8-.075h; y10=.225h;
+filldraw stroke z8e{right}..{down}z9e---z10e;
+x11=x10; y11=y10; rt_wing(11,2u,0);
+penlabels(0,0',1,2,2',3,4,5); endchar;
+
+
+iff known eth_yA:
+cmchar "The letter yA";
+beginchar(eth_yA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,0);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,190); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3u;
+y1=.175h; y2=.65h; y2'=.5h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.75u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+x8=x7+.25u; y8=y7-.025h; lft_half_ellipse(8,0);
+penlabels(0,0',1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_yE:
+cmchar "The letter yE";
+beginchar(eth_yE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,45); pos7(vair,45);
+penpos8(stem,0); penpos9(stem,0); penpos10(stem,0);
+x6=x1; x7=x6+2.75u; y6=y7+o=.4h; draw z6--z7;
+x8=x7l-.25u; y8=y7; yfive_ring(8,-2);
+penlabels(0,0',1,2,2',3,4,56,7); endchar;
+
+
+iff known eth_ye:
+cmchar "The letter ye";
+beginchar(eth_ye,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos1(stem,190); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+pos1'(vair,270); penpos0(stem,0); penpos0'(stem,0);
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3u;
+y1=.225h; y2=.65h; y2'=.5h; top y3=h;
+x1'=w-1.5u; x0l=w-.5u; x0'l=x0l-.5u;
+y1'=.2h; y0=y1'+.175h; y0'=y0+.075h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...
+ z1e...z1'e{right}..{up}z0e...z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-.75u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+z8=z7l; t_wing(8);
+penlabels(0,0',1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_yO:
+cmchar "The letter yO";
+beginchar(eth_yO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+x6=x4; y6=y4-.2h; rt_wing(6,2u,.015h);
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_yuA:
+cmchar "The letter yuA";
+beginchar(eth_yuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=0; y0=.1h; y1=.3h; y2=.6h; y2'=.45h; top y3=.9h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,3,4,5,10,10'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf
new file mode 100644
index 00000000000..1343a19e33d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf
@@ -0,0 +1,209 @@
+%-------------------------------------------------------------
+% This is ETH_Z.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_za:
+cmchar "The letter za";
+beginchar(eth_za,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,0)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zU:
+cmchar "The letter zU";
+beginchar(eth_zU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,3u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% RIGHT WING
+x6=x2'r; y6=.45h; rt_wing(6,1.75u,.025h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zI:
+cmchar "The letter zI";
+beginchar(eth_zI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,3u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+%RIGHT BOTTOM WING
+z6=z2r; rt_half_ellipse(6,1u);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zA:
+cmchar "The letter zA";
+beginchar(eth_zA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,0)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zE:
+cmchar "The letter zE";
+beginchar(eth_zE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,2.75u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% RIGHT BOTTOM RING
+x6=x2; bot y6=0; half_ring(6);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_ze:
+cmchar "The letter ze";
+beginchar(eth_ze,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0r,x1r]; x5=.5[x3l,x2l]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,1u,.025h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zO:
+cmchar "The letter zO";
+beginchar(eth_zO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,-.25u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; y2=.25h; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zuA:
+cmchar "The letter zuA";
+beginchar(eth_zuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,3.5u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+x20=x2l; x21=x2r; y20=y21=y2; lft_wing(20,2u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(0,1,2,3,4,5); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf
new file mode 100644
index 00000000000..462ea0bec2f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf
@@ -0,0 +1,235 @@
+%-------------------------------------------------------------
+% This is ETH_Z_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^za:
+cmchar "The letter ^za";
+beginchar(eth_^za,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zU:
+cmchar "The letter ^zU";
+beginchar(eth_^zU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% WINGS
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+
+%RIGHT WING
+x8=x2'l; y8=.45h; rt_wing(8,1.75u,.025h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zI:
+cmchar "The letter ^zI";
+beginchar(eth_^zI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+
+%RIGHT BOTTOM WING
+z8=z2l; rt_half_ellipse(8,1.5u);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zA:
+cmchar "The letter ^zA";
+beginchar(eth_^zA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zE:
+cmchar "The letter ^zE";
+beginchar(eth_^zE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+
+%RIGHT BOTTOM RING
+x8=x2; bot y8=0; half_ring(8);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^ze:
+cmchar "The letter ^ze";
+beginchar(eth_^ze,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.8h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.85h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penpos9(stem,0); penpos10(stem,0); x9=x10=x1'l; y9=y1; y10=y9+.15h;
+filldraw stroke z9e--z10e;
+x14=x9l+.25u; x15=x9r; y14=y15=y10;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zO:
+cmchar "The letter ^zO";
+beginchar(eth_^zO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; y2=.25h; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zuA:
+cmchar "The letter ^zuA";
+beginchar(eth_^zuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o);
+x7=x3; y7=y3; rt_wing(7,.75u,o);
+x20=x2r; x21=x2l; y20=y21=y2; lft_wing(20,1.75u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(0,1,2,3,4,5); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha10.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha10.mf
new file mode 100644
index 00000000000..6858510b9c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha10.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHA10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 10pt#;
+
+%%% u#:=20/36pt#; % unit width
+u#:=21/36pt#; % unit width (suposedly for ethiopian typewriter)
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+%%% x_height#:=155/36pt#; % height of lowercase without ascenders
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha6.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha6.mf
new file mode 100644
index 00000000000..87e99a21438
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha6.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHA6.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+%% x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha7.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha7.mf
new file mode 100644
index 00000000000..db87a67a0bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha7.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHA7.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+%% x_height#:=108.5/36pt#; % height of lowercase without ascenders
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha8.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha8.mf
new file mode 100644
index 00000000000..a125dc30d7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha8.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHA8.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 8pt#;
+
+%%% u#:=17/36pt#; % unit width
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=180/36pt#; % height of lowercase without ascenders
+%%% x_height#:=164/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%% stem#:=22/36pt#; % lowercase stem breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/20; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf
new file mode 100644
index 00000000000..64cbe758f98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf
@@ -0,0 +1,260 @@
+%-------------------------------------------------------------
+% This is ETHA_COD.MF
+%-------------------------------------------------------------
+
+eth_mua = 0;
+eth_muI = 1;
+eth_muA = 2;
+eth_muE = 3;
+eth_mue = 4;
+eth_qua = 5;
+eth_quI = 6;
+eth_quA = 7;
+eth_quE = 8;
+eth_que = 9;
+eth_bua = 10;
+eth_buI = 11;
+eth_buA = 12;
+eth_buE = 13;
+eth_bue = 14;
+eth_kua = 15;
+eth_kuI = 16;
+eth_kuA = 17;
+eth_kuE = 18;
+eth_kue = 19;
+eth_gua = 20;
+eth_guI = 21;
+eth_guA = 22;
+eth_guE = 23;
+eth_gue = 24;
+eth_fua = 25;
+eth_fuI = 26;
+eth_fuA = 27;
+eth_fuE = 28;
+eth_fue = 29;
+\no_char(30);
+\no_char(31);
+\no_char(32);
+exclamation_mark = 33;
+rt_quotes = 34;
+spanish_shriek = 35;
+dollar = 36;
+spanish_query = 37;
+\no_char(38);
+rt_quote = 39;
+lt_parenthesis = 40;
+rt_parenthesis = 41;
+eth_colon = 42;
+\no_char(43);
+eth_comma = 44;
+eth_minus = 45;
+period = 46;
+slash = 47;
+%"0" = 48;
+%"1" = 49;
+%"2" = 50;
+%"3" = 51;
+%"4" = 52;
+%"5" = 53;
+%"6" = 54;
+%"7" = 55;
+%"8" = 56;
+%"9" = 57;
+eth_space = 58;
+eth_semicolon = 59;
+less = 60;
+\no_char(61);
+greater = 62;
+question_mark = 63;
+\no_char(64);
+eth_`A = 65;
+\no_char(66);
+\no_char(67);
+\no_char(68);
+eth_`E = 69;
+\no_char(70);
+\no_char(71);
+\no_char(72);
+eth_`I = 73;
+\no_char(74);
+\no_char(75);
+\no_char(76);
+\no_char(77);
+\no_char(78);
+eth_`O = 79;
+\no_char(80);
+\no_char(81);
+\no_char(82);
+\no_char(83);
+\no_char(84);
+eth_`U = 85;
+\no_char(86);
+\no_char(87);
+\no_char(88);
+\no_char(89);
+\no_char(90);
+lt_bracket = 91;
+lt_quotes = 92;
+rt_bracket = 93;
+\no_char(94);
+\no_char(95);
+lt_quote = 96;
+eth_`a = 97;
+eth_be = 98;
+\no_char(99);
+eth_de = 100;
+eth_`e = 101;
+eth_fe = 102;
+eth_ge = 103;
+eth_he = 104;
+\no_char(105);
+\no_char(106);
+eth_ke = 107;
+eth_le = 108;
+eth_me = 109;
+eth_ne = 110;
+\no_char(111);
+eth_pe = 112;
+eth_qe = 113;
+eth_re = 114;
+eth_se = 115;
+eth_te = 116;
+\no_char(117);
+eth_ve = 118;
+eth_we = 119;
+\no_char(120);
+eth_ye = 121;
+eth_ze = 122;
+eth_preface_colon = 123;
+eth_three_dot = 124;
+eth_seven_dot = 125;
+eth_full_stop = 126;
+zero_hyph = 127;
+eth_ha = 128;
+eth_hU = 129;
+eth_hI = 130;
+eth_hA = 131;
+eth_hE = 132;
+eth_hO = 133;
+eth_la = 134;
+eth_lU = 135;
+eth_lI = 136;
+eth_lA = 137;
+eth_lE = 138;
+eth_lO = 139;
+eth_ma = 140;
+eth_mU = 141;
+eth_mI = 142;
+eth_mA = 143;
+eth_mE = 144;
+eth_mO = 145;
+eth_ra = 146;
+eth_rU = 147;
+eth_rI = 148;
+eth_rA = 149;
+eth_rE = 150;
+eth_rO = 151;
+eth_sa = 152;
+eth_sU = 153;
+eth_sI = 154;
+eth_sA = 155;
+eth_sE = 156;
+eth_sO = 157;
+eth_qa = 158;
+eth_qU = 159;
+eth_qI = 160;
+eth_qA = 161;
+eth_qE = 162;
+eth_qO = 163;
+eth_ba = 164;
+eth_bU = 165;
+eth_bI = 166;
+eth_bA = 167;
+eth_bE = 168;
+eth_bO = 169;
+eth_va = 170;
+eth_vU = 171;
+eth_vI = 172;
+eth_vA = 173;
+eth_vE = 174;
+eth_vO = 175;
+eth_ta = 176;
+eth_tU = 177;
+eth_tI = 178;
+eth_tA = 179;
+eth_tE = 180;
+eth_tO = 181;
+eth_na = 182;
+eth_nU = 183;
+eth_nI = 184;
+eth_nA = 185;
+eth_nE = 186;
+eth_nO = 187;
+eth_ka = 188;
+eth_kU = 189;
+eth_kI = 190;
+eth_kA = 191;
+eth_kE = 192;
+eth_kO = 193;
+eth_wa = 194;
+eth_wU = 195;
+eth_wI = 196;
+eth_wA = 197;
+eth_wE = 198;
+eth_wO = 199;
+eth_za = 200;
+eth_zU = 201;
+eth_zI = 202;
+eth_zA = 203;
+eth_zE = 204;
+eth_zO = 205;
+eth_ya = 206;
+eth_yU = 207;
+eth_yI = 208;
+eth_yA = 209;
+eth_yE = 210;
+eth_yO = 211;
+eth_da = 212;
+eth_dU = 213;
+eth_dI = 214;
+eth_dA = 215;
+eth_dE = 216;
+eth_dO = 217;
+eth_ga = 218;
+eth_gU = 219;
+eth_gI = 220;
+eth_gA = 221;
+eth_gE = 222;
+eth_gO = 223;
+eth_fa = 224;
+eth_fU = 225;
+eth_fI = 226;
+eth_fA = 227;
+eth_fE = 228;
+eth_fO = 229;
+eth_pa = 230;
+eth_pU = 231;
+eth_pI = 232;
+eth_pA = 233;
+eth_pE = 234;
+eth_pO = 235;
+eth_pua = 236;
+eth_puI = 237;
+eth_puA = 238;
+eth_puE = 239;
+eth_pue = 240;
+\no_char(241);
+\no_char(242);
+\no_char(243);
+\no_char(244);
+\no_char(245);
+eth_huA = 246;
+eth_vuA = 247;
+eth_tuA = 248;
+eth_nuA = 249;
+eth_zuA = 250;
+eth_yuA = 251;
+eth_duA = 252;
+eth_luA = 253;
+eth_ruA = 254;
+eth_suA = 255;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf
new file mode 100644
index 00000000000..4b658e97e2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf
@@ -0,0 +1,58 @@
+%-------------------------------------------------------------
+% This is ETHA_DRV.MF
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if monospace:
+ message "ignoring monospace";
+ monospace:=false;
+fi
+
+font_coding_scheme:= "TeX text without f-ligatures";
+mode_setup;
+font_setup;
+
+\input ethiomac;
+\input etha_cod;
+
+\input romand.mf
+
+%%%%BEGIN
+\input eth__g;
+\input eth_b;
+\input eth_d;
+\input eth_f;
+\input eth_fu;
+\input eth_g;
+\input eth_gu;
+\input eth_h;
+\input eth_k;
+\input eth_ku;
+\input eth_l;
+\input eth_m;
+\input eth_mu;
+\input eth_n;
+\input eth_p;
+\input eth_pu;
+\input eth_punc;
+\input eth_q;
+\input eth_qu;
+\input eth_r;
+\input eth_s;
+\input eth_t;
+\input eth_v;
+\input eth_w;
+\input eth_y;
+\input eth_z;
+%%%%END
+
+\input etha_lig;
+
+font_slant slant;
+font_x_height x_height#;
+font_normal_space 10u#+4letter_fit#;
+font_normal_stretch 5u#; font_normal_shrink 2u#;
+font_quad 18u#+6letter_fit#;
+font_extra_space 3.5u#;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf
new file mode 100644
index 00000000000..bc772997a83
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf
@@ -0,0 +1,309 @@
+%-------------------------------------------------------------
+% This is ETHA_LIG.MF
+%-------------------------------------------------------------
+
+ligtable less:
+ less kern -4u#;
+ligtable "l":
+ "u" =: eth_lU,
+ "I" =: eth_lI,
+ "i" =: eth_lI,
+ "A" =: eth_lA,
+ "E" =: eth_lE,
+ "O" =: eth_lO,
+ "o" =: eth_lO,
+ "e" =: eth_le,
+ "a" =: eth_la,
+ "U" =: eth_lU;
+ligtable "y":
+ "u" =: eth_yU,
+ "I" =: eth_yI,
+ "i" =: eth_yI,
+ "A" =: eth_yA,
+ "E" =: eth_yE,
+ "O" =: eth_yO,
+ "o" =: eth_yO,
+ "e" =: eth_ye,
+ "a" =: eth_ya,
+ "U" =: eth_yU;
+ligtable eth_vU:
+ "A" =: eth_vuA,
+ "a" =: eth_vuA;
+ligtable eth_space:
+ eth_space =: eth_full_stop,
+ "=" =: eth_colon,
+ eth_minus =: eth_preface_colon,
+ eth_three_dot =: eth_seven_dot;
+ligtable lt_quote:
+ "E" =: eth_`E,
+ "I" =: eth_`I,
+ "i" =: eth_`I,
+ "O" =: eth_`O,
+ "o" =: eth_`O,
+ "U" =: eth_`U,
+ "u" =: eth_`U,
+ lt_quote =: lt_quotes,
+ "a" =: eth_`a,
+ "e" =: eth_`e,
+ exclamation_mark =: spanish_shriek,
+ question_mark =: spanish_query,
+ "A" =: eth_`A;
+ligtable "m":
+ "u" =: eth_mU,
+ "I" =: eth_mI,
+ "i" =: eth_mI,
+ "A" =: eth_mA,
+ "E" =: eth_mE,
+ "O" =: eth_mO,
+ "o" =: eth_mO,
+ "e" =: eth_me,
+ "a" =: eth_ma,
+ "U" =: eth_mU;
+ligtable "z":
+ "u" =: eth_zU,
+ "I" =: eth_zI,
+ "i" =: eth_zI,
+ "A" =: eth_zA,
+ "E" =: eth_zE,
+ "O" =: eth_zO,
+ "o" =: eth_zO,
+ "e" =: eth_ze,
+ "a" =: eth_za,
+ "U" =: eth_zU;
+ligtable eth_seven_dot:
+ eth_space =: eth_seven_dot;
+ligtable "n":
+ "u" =: eth_nU,
+ "I" =: eth_nI,
+ "i" =: eth_nI,
+ "A" =: eth_nA,
+ "E" =: eth_nE,
+ "O" =: eth_nO,
+ "o" =: eth_nO,
+ "e" =: eth_ne,
+ "a" =: eth_na,
+ "U" =: eth_nU;
+ligtable eth_kU:
+ "A" =: eth_kuA,
+ "E" =: eth_kuE,
+ "e" =: eth_kue,
+ "a" =: eth_kua,
+ "I" =: eth_kuI,
+ "i" =: eth_kuI;
+ligtable "b":
+ "u" =: eth_bU,
+ "I" =: eth_bI,
+ "i" =: eth_bI,
+ "A" =: eth_bA,
+ "E" =: eth_bE,
+ "O" =: eth_bO,
+ "o" =: eth_bO,
+ "e" =: eth_be,
+ "a" =: eth_ba,
+ "U" =: eth_bU;
+ligtable eth_yU:
+ "a" =: eth_yuA,
+ "A" =: eth_yuA;
+ligtable eth_lU:
+ "A" =: eth_luA,
+ "a" =: eth_luA;
+ligtable "p":
+ "u" =: eth_pU,
+ "I" =: eth_pI,
+ "i" =: eth_pI,
+ "A" =: eth_pA,
+ "E" =: eth_pE,
+ "O" =: eth_pO,
+ "o" =: eth_pO,
+ "e" =: eth_pe,
+ "a" =: eth_pa,
+ "U" =: eth_pU;
+ligtable eth_mU:
+ "A" =: eth_muA,
+ "E" =: eth_muE,
+ "e" =: eth_mue,
+ "a" =: eth_mua,
+ "I" =: eth_muI,
+ "i" =: eth_muI;
+ligtable eth_zU:
+ "A" =: eth_zuA,
+ "a" =: eth_zuA;
+ligtable greater:
+ greater kern -4u#;
+ligtable "d":
+ "u" =: eth_dU,
+ "I" =: eth_dI,
+ "i" =: eth_dI,
+ "A" =: eth_dA,
+ "E" =: eth_dE,
+ "O" =: eth_dO,
+ "o" =: eth_dO,
+ "e" =: eth_de,
+ "a" =: eth_da,
+ "U" =: eth_dU;
+ligtable "q":
+ "u" =: eth_qU,
+ "I" =: eth_qI,
+ "i" =: eth_qI,
+ "A" =: eth_qA,
+ "E" =: eth_qE,
+ "O" =: eth_qO,
+ "o" =: eth_qO,
+ "e" =: eth_qe,
+ "a" =: eth_qa,
+ "U" =: eth_qU;
+ligtable eth_nU:
+ "A" =: eth_nuA,
+ "a" =: eth_nuA;
+ligtable "r":
+ "u" =: eth_rU,
+ "I" =: eth_rI,
+ "i" =: eth_rI,
+ "A" =: eth_rA,
+ "E" =: eth_rE,
+ "O" =: eth_rO,
+ "o" =: eth_rO,
+ "e" =: eth_re,
+ "a" =: eth_ra,
+ "U" =: eth_rU;
+ligtable eth_bU:
+ "A" =: eth_buA,
+ "E" =: eth_buE,
+ "e" =: eth_bue,
+ "a" =: eth_bua,
+ "I" =: eth_buI,
+ "i" =: eth_buI;
+ligtable rt_quote:
+ rt_quote =: rt_quotes,
+ exclamation_mark =: spanish_shriek,
+ question_mark =: spanish_query;
+ligtable "f":
+ "u" =: eth_fU,
+ "I" =: eth_fI,
+ "i" =: eth_fI,
+ "A" =: eth_fA,
+ "E" =: eth_fE,
+ "O" =: eth_fO,
+ "o" =: eth_fO,
+ "e" =: eth_fe,
+ "a" =: eth_fa,
+ "U" =: eth_fU;
+ligtable "s":
+ "u" =: eth_sU,
+ "I" =: eth_sI,
+ "i" =: eth_sI,
+ "A" =: eth_sA,
+ "E" =: eth_sE,
+ "O" =: eth_sO,
+ "o" =: eth_sO,
+ "e" =: eth_se,
+ "a" =: eth_sa,
+ "U" =: eth_sU;
+ligtable eth_pU:
+ "E" =: eth_puE,
+ "e" =: eth_pue,
+ "a" =: eth_pua,
+ "I" =: eth_puI,
+ "A" =: eth_puA;
+ligtable "g":
+ "u" =: eth_gU,
+ "I" =: eth_gI,
+ "i" =: eth_gI,
+ "A" =: eth_gA,
+ "E" =: eth_gE,
+ "O" =: eth_gO,
+ "o" =: eth_gO,
+ "e" =: eth_ge,
+ "a" =: eth_ga,
+ "U" =: eth_gU;
+ligtable "t":
+ "u" =: eth_tU,
+ "I" =: eth_tI,
+ "i" =: eth_tI,
+ "A" =: eth_tA,
+ "E" =: eth_tE,
+ "O" =: eth_tO,
+ "o" =: eth_tO,
+ "e" =: eth_te,
+ "a" =: eth_ta,
+ "U" =: eth_tU;
+ligtable eth_qU:
+ "A" =: eth_quA,
+ "E" =: eth_quE,
+ "e" =: eth_que,
+ "a" =: eth_qua,
+ "I" =: eth_quI,
+ "i" =: eth_quI;
+ligtable eth_dU:
+ "A" =: eth_duA,
+ "a" =: eth_duA;
+ligtable eth_rU:
+ "A" =: eth_ruA,
+ "a" =: eth_ruA;
+ligtable "h":
+ "u" =: eth_hU,
+ "I" =: eth_hI,
+ "i" =: eth_hI,
+ "A" =: eth_hA,
+ "E" =: eth_hE,
+ "O" =: eth_hO,
+ "o" =: eth_hO,
+ "e" =: eth_he,
+ "a" =: eth_ha,
+ "U" =: eth_hU;
+ligtable eth_fU:
+ "A" =: eth_fuA,
+ "E" =: eth_fuE,
+ "e" =: eth_fue,
+ "a" =: eth_fua,
+ "I" =: eth_fuI,
+ "i" =: eth_fuI;
+ligtable eth_sU:
+ "A" =: eth_suA,
+ "a" =: eth_suA;
+ligtable "v":
+ "u" =: eth_vU,
+ "I" =: eth_vI,
+ "i" =: eth_vI,
+ "A" =: eth_vA,
+ "E" =: eth_vE,
+ "O" =: eth_vO,
+ "o" =: eth_vO,
+ "e" =: eth_ve,
+ "a" =: eth_va,
+ "U" =: eth_vU;
+ligtable eth_gU:
+ "A" =: eth_guA,
+ "E" =: eth_guE,
+ "e" =: eth_gue,
+ "a" =: eth_gua,
+ "I" =: eth_guI,
+ "i" =: eth_guI;
+ligtable eth_tU:
+ "A" =: eth_tuA,
+ "a" =: eth_tuA;
+ligtable "w":
+ "u" =: eth_wU,
+ "I" =: eth_wI,
+ "i" =: eth_wI,
+ "A" =: eth_wA,
+ "E" =: eth_wE,
+ "O" =: eth_wO,
+ "o" =: eth_wO,
+ "e" =: eth_we,
+ "a" =: eth_wa,
+ "U" =: eth_wU;
+ligtable "k":
+ "u" =: eth_kU,
+ "I" =: eth_kI,
+ "i" =: eth_kI,
+ "A" =: eth_kA,
+ "E" =: eth_kE,
+ "O" =: eth_kO,
+ "o" =: eth_kO,
+ "e" =: eth_ke,
+ "a" =: eth_ka,
+ "U" =: eth_kU;
+ligtable eth_hU:
+ "A" =: eth_huA,
+ "a" =: eth_huA;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf
new file mode 100644
index 00000000000..961a7e9d048
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHAB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+%% x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+%%vair#:=9/36pt#; % vertical diameter of hairlines
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf
new file mode 100644
index 00000000000..428c575a52a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHAB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+%%% x_height#:=176/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf
new file mode 100644
index 00000000000..7d0a88ba9c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHAB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%stem#:=40/36pt#; % lowercase stem breadth
+%%stem#:=47/36pt#; % lowercase stem breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf
new file mode 100644
index 00000000000..86a6170280a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHAB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf
new file mode 100644
index 00000000000..28f566b96a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHAB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf
new file mode 100644
index 00000000000..85b07381a97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHAB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf
new file mode 100644
index 00000000000..2168f1f9eef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHAB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+stem#:=138/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf
new file mode 100644
index 00000000000..36c587a362c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHAB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf
new file mode 100644
index 00000000000..3cce3a9f2b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHAS10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf
new file mode 100644
index 00000000000..83b155e36a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHASB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf
new file mode 100644
index 00000000000..0f0d4506492
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHASB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf
new file mode 100644
index 00000000000..67234da0603
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHASB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf
new file mode 100644
index 00000000000..0193a8aba42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHASB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf
new file mode 100644
index 00000000000..794736cab5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHASB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf
new file mode 100644
index 00000000000..67d8363eab6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHASB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf
new file mode 100644
index 00000000000..844832399fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHASB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=138/36pt#; % lowercase stem breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf
new file mode 100644
index 00000000000..4ba919a9d23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHASB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf
new file mode 100644
index 00000000000..220cda12620
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHATT10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOATT"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf
new file mode 100644
index 00000000000..e7739d074c0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 10pt#;
+
+%%% u#:=20/36pt#; % unit width
+u#:=21/36pt#; % unit width (suposedly for ethiopian typewriter)
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+%%% x_height#:=155/36pt#; % height of lowercase without ascenders
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf
new file mode 100644
index 00000000000..6f4d440d083
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHB6.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+%% x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf
new file mode 100644
index 00000000000..c7b5b97fe76
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHB7.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+%% x_height#:=108.5/36pt#; % height of lowercase without ascenders
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf
new file mode 100644
index 00000000000..0de0aa2cb34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHB8.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 8pt#;
+
+%%% u#:=17/36pt#; % unit width
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=180/36pt#; % height of lowercase without ascenders
+%%% x_height#:=164/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%% stem#:=22/36pt#; % lowercase stem breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/20; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf
new file mode 100644
index 00000000000..849122a7780
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf
@@ -0,0 +1,260 @@
+%-------------------------------------------------------------
+% This is ETHB_COD.MF
+%-------------------------------------------------------------
+
+eth_Qua = 0;
+\no_char(1);
+eth_QuI = 2;
+eth_QuA = 3;
+eth_QuE = 4;
+eth_Que = 5;
+\no_char(6);
+\no_char(7);
+eth_^hua = 8;
+\no_char(9);
+eth_^huI = 10;
+eth_^huA = 11;
+eth_^huE = 12;
+eth_^hue = 13;
+\no_char(14);
+\no_char(15);
+eth_Kua = 16;
+\no_char(17);
+eth_KuI = 18;
+eth_KuA = 19;
+eth_KuE = 20;
+eth_Kue = 21;
+\no_char(22);
+\no_char(23);
+eth_Gua = 24;
+\no_char(25);
+eth_GuI = 26;
+eth_GuA = 27;
+eth_GuE = 28;
+eth_Gue = 29;
+\no_char(30);
+\no_char(31);
+eth_d_accent = 32;
+eth_girigea = 33;
+eth_rass = 34;
+eth_rassigea = 35;
+\no_char(36);
+\no_char(37);
+\no_char(38);
+\no_char(39);
+eth_mya = 40;
+eth_rya = 41;
+eth_fya = 42;
+\no_char(43);
+\no_char(44);
+\no_char(45);
+\no_char(46);
+\no_char(47);
+\no_char(48);
+eth_1 = 49;
+eth_2 = 50;
+eth_3 = 51;
+eth_4 = 52;
+eth_5 = 53;
+eth_6 = 54;
+eth_7 = 55;
+eth_8 = 56;
+eth_9 = 57;
+eth_10 = 58;
+eth_20 = 59;
+eth_30 = 60;
+eth_40 = 61;
+eth_50 = 62;
+eth_60 = 63;
+eth_70 = 64;
+eth_80 = 65;
+eth_90 = 66;
+eth_100 = 67;
+eth_100_100 = 68;
+\no_char(69);
+\no_char(70);
+\no_char(71);
+eth_Ha = 72;
+eth_HU = 73;
+eth_HI = 74;
+eth_HA = 75;
+eth_HE = 76;
+eth_He = 77;
+eth_HO = 78;
+eth_HuA = 79;
+eth_'sa = 80;
+eth_'sU = 81;
+eth_'sI = 82;
+eth_'sA = 83;
+eth_'sE = 84;
+eth_'se = 85;
+eth_'sO = 86;
+eth_'suA = 87;
+eth_^sa = 88;
+eth_^sU = 89;
+eth_^sI = 90;
+eth_^sA = 91;
+eth_^sE = 92;
+eth_^se = 93;
+eth_^sO = 94;
+eth_^suA = 95;
+eth_Qa = 96;
+eth_QU = 97;
+eth_QI = 98;
+eth_QA = 99;
+eth_QE = 100;
+eth_Qe = 101;
+eth_QO = 102;
+\no_char(103);
+eth_^ca = 104;
+eth_^cU = 105;
+eth_^cI = 106;
+eth_^cA = 107;
+eth_^cE = 108;
+eth_^ce = 109;
+eth_^cO = 110;
+eth_^cuA = 111;
+eth_^ha = 112;
+eth_^hU = 113;
+eth_^hI = 114;
+eth_^hA = 115;
+eth_^hE = 116;
+eth_^he = 117;
+eth_^hO = 118;
+\no_char(119);
+eth_Na = 120;
+eth_NU = 121;
+eth_NI = 122;
+eth_NA = 123;
+eth_NE = 124;
+eth_Ne = 125;
+eth_NO = 126;
+eth_NuA = 127;
+eth_'a = 128;
+eth_'U = 129;
+eth_'I = 130;
+eth_'A = 131;
+eth_'E = 132;
+eth_'e = 133;
+eth_'O = 134;
+eth_'ua = 135;
+eth_Ka = 136;
+eth_KU = 137;
+eth_KI = 138;
+eth_KA = 139;
+eth_KE = 140;
+eth_Ke = 141;
+eth_KO = 142;
+\no_char(143);
+eth_^za = 144;
+eth_^zU = 145;
+eth_^zI = 146;
+eth_^zA = 147;
+eth_^zE = 148;
+eth_^ze = 149;
+eth_^zO = 150;
+eth_^zuA = 151;
+eth_Da = 152;
+eth_DU = 153;
+eth_DI = 154;
+eth_DA = 155;
+eth_DE = 156;
+eth_De = 157;
+eth_DO = 158;
+eth_DuA = 159;
+eth_ja = 160;
+eth_jU = 161;
+eth_jI = 162;
+eth_jA = 163;
+eth_jE = 164;
+eth_je = 165;
+eth_jO = 166;
+eth_juA = 167;
+eth_Ga = 168;
+eth_GU = 169;
+eth_GI = 170;
+eth_GA = 171;
+eth_GE = 172;
+eth_Ge = 173;
+eth_GO = 174;
+\no_char(175);
+eth_Ta = 176;
+eth_TU = 177;
+eth_TI = 178;
+eth_TA = 179;
+eth_TE = 180;
+eth_Te = 181;
+eth_TO = 182;
+eth_TuA = 183;
+eth_^Ca = 184;
+eth_^CU = 185;
+eth_^CI = 186;
+eth_^CA = 187;
+eth_^CE = 188;
+eth_^Ce = 189;
+eth_^CO = 190;
+eth_^CuA = 191;
+eth_var^Ca = 192;
+eth_var^CU = 193;
+eth_var^CI = 194;
+eth_var^CA = 195;
+eth_var^CE = 196;
+eth_var^Ce = 197;
+eth_var^CO = 198;
+eth_var^CuA = 199;
+eth_Pa = 200;
+eth_PU = 201;
+eth_PI = 202;
+eth_PA = 203;
+eth_PE = 204;
+eth_Pe = 205;
+eth_PO = 206;
+eth_PuA = 207;
+eth_Sa = 208;
+eth_SU = 209;
+eth_SI = 210;
+eth_SA = 211;
+eth_SE = 212;
+eth_Se = 213;
+eth_SO = 214;
+eth_SuA = 215;
+eth_Ca = 216;
+eth_CU = 217;
+eth_CI = 218;
+eth_CA = 219;
+eth_CE = 220;
+eth_Ce = 221;
+eth_CO = 222;
+\no_char(223);
+eth_'qa = 224;
+eth_'qU = 225;
+eth_'qI = 226;
+eth_'qA = 227;
+eth_'qE = 228;
+eth_'qe = 229;
+eth_'qO = 230;
+\no_char(231);
+eth_'ka = 232;
+eth_'kU = 233;
+eth_'kI = 234;
+eth_'kA = 235;
+eth_'kE = 236;
+eth_'ke = 237;
+eth_'kO = 238;
+\no_char(239);
+eth_'ha = 240;
+eth_'hU = 241;
+eth_'hI = 242;
+eth_'hA = 243;
+eth_'hE = 244;
+eth_'he = 245;
+eth_'hO = 246;
+\no_char(247);
+eth_'ga = 248;
+eth_'gU = 249;
+eth_'gI = 250;
+eth_'gA = 251;
+eth_'gE = 252;
+eth_'ge = 253;
+eth_'gO = 254;
+\no_char(255);
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf
new file mode 100644
index 00000000000..576f7a625a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf
@@ -0,0 +1,60 @@
+%-------------------------------------------------------------
+% This is ETHB_DRV.MF
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if monospace:
+ message "ignoring monospace";
+ monospace:=false;
+fi
+
+font_coding_scheme:= "TeX text without f-ligatures";
+mode_setup;
+font_setup;
+
+\input ethiomac;
+\input ethb_cod;
+
+%%%%BEGIN
+\input eth__a;
+\input eth_acce;
+\input eth_c_c;
+\input eth_cc;
+\input eth_cc_c;
+\input eth_ccc2;
+\input eth_dd;
+\input eth_g_a;
+\input eth_gg;
+\input eth_ggu;
+\input eth_h_a;
+\input eth_h_c;
+\input eth_hh;
+\input eth_hu_c;
+\input eth_j;
+\input eth_k_a;
+\input eth_kk;
+\input eth_kku;
+\input eth_mrf;
+\input eth_nn;
+\input eth_num;
+\input eth_pp;
+\input eth_q_a;
+\input eth_qq;
+\input eth_qqu;
+\input eth_s_a;
+\input eth_s_c;
+\input eth_ss;
+\input eth_tt;
+\input eth_z_c;
+%%%%END
+
+\input ethb_lig;
+
+font_slant slant;
+font_x_height x_height#;
+font_normal_space 10u#+4letter_fit#;
+font_normal_stretch 5u#; font_normal_shrink 2u#;
+font_quad 18u#+6letter_fit#;
+font_extra_space 3.5u#;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf
new file mode 100644
index 00000000000..c5ee82df841
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf
@@ -0,0 +1 @@
+% no ETHB_LIG.MF needed
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf
new file mode 100644
index 00000000000..98d406483ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+%% x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+%%vair#:=9/36pt#; % vertical diameter of hairlines
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf
new file mode 100644
index 00000000000..77c697031f7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHBB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+%%% x_height#:=176/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf
new file mode 100644
index 00000000000..5f93d941aa8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHBB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%stem#:=40/36pt#; % lowercase stem breadth
+%%stem#:=47/36pt#; % lowercase stem breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf
new file mode 100644
index 00000000000..479bbf499f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf
new file mode 100644
index 00000000000..142a6a6eb75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHBB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf
new file mode 100644
index 00000000000..79d9a607683
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHBB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf
new file mode 100644
index 00000000000..a83c8dbc335
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+stem#:=138/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf
new file mode 100644
index 00000000000..5b13812fb00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf
new file mode 100644
index 00000000000..00734f0dd06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHBS10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf
new file mode 100644
index 00000000000..dacb3912f57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHBSB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf
new file mode 100644
index 00000000000..3be2db4e360
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHBSB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf
new file mode 100644
index 00000000000..5604b99f6f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHBSB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf
new file mode 100644
index 00000000000..40b6bfc7f31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBSB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf
new file mode 100644
index 00000000000..fdac555071e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHBSB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf
new file mode 100644
index 00000000000..8ee90a2571d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHBSB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf
new file mode 100644
index 00000000000..3b0d173124a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBSB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=138/36pt#; % lowercase stem breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf
new file mode 100644
index 00000000000..7c0f01e681e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBSB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf
new file mode 100644
index 00000000000..0ca550c5d13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBTT10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBTT"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf
new file mode 100644
index 00000000000..a488b4b8811
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf
@@ -0,0 +1,353 @@
+%-------------------------------------------------------------
+% This is ETHIOPMAC.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+%%% THUMB %%%
+
+def t_thumb(suffix @)=
+ pickup fine.nib;
+ x@a=x@s=x@-3.25u; x@b=x@a+.75u; x@c=x@a; x@d=x@a+2u; x@e=x@a+3.25u;
+ x@f=x@a+3.25u; x@g=x@a+1.75u;
+ y@a=y@-.1h+oo; y@b=y@; y@c=y@+.1h-oo;
+ y@d=y@c+oo; y@e=y@c-.025h; y@f=y@a+.05h; y@g=y@a-oo;
+ fill flex(z@a,z@b,z@c) & flex(z@c,z@d,z@e)...flex(z@f,z@g,z@a)
+ & cycle;
+ penlabels(@,@a,@b,@c,@d,@e,@f,@g);
+enddef;
+
+def left_up_thumb(suffix @)=
+ pickup tiny.nib;
+ x@a=x@; y@a=y@;
+ x@b=x@-1.9u; x@c=x@-1.7u; x@d=x@-2.2u; x@e=x@-.5u; x@f=x@-.5u;
+ y@b=y@; y@c=y@+.07h; y@d=y@+.15h; y@e=y@+.14h; y@f=y@;
+ pickup fine.nib;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a)
+ & flex(z@a,z@f,z@b) & cycle;
+ pickup fine.nib;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+%%% WING %%%
+
+def upper_left_wing(suffix @)=
+ pickup fine.nib; pos@g(vair,90); pos@i(vair,90);
+ x@g=x@; x@i=x@-1.5u; y@g=y@i=y@;
+ filldraw stroke z@g.e--z@i.e;
+ x@a=x@-1.52u; y@a=y@;
+ x@b=x@-3.9u; x@c=x@-3.7u; x@d=x@-4.2u; x@e=x@-2.5u; x@f=x@-2.5u;
+ y@b=y@-oo; y@c=y@+.07h; y@d=y@+.15h; y@e=y@+.14h; y@f=y@-oo;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a)
+ & flex(z@a,z@f,z@b) & cycle;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+def upper_right_wing(suffix $)=
+ pickup fine.nib; pos$a(vair,90); pos$b(vair,90);
+ x$a=x$; x$b=x$+1.5u; y$a=y$b=y$;
+ filldraw stroke z$a.e--z$b.e;
+ x$g=x$+1.52u; y$g=y$;
+ x$i=x$+3.9u; x$j=x$+3.7u; x$k=x$+4.2u; x$l=x$+2.5u; x$m=x$+2.5u;
+ y$i=y$-oo; y$j=y$+.07h; y$k=y$+.15h; y$l=y$+.14h; y$m=y$-oo;
+ filldraw flex(z$i,z$j,z$k) & flex(z$k,z$l,z$g)
+ & flex(z$g,z$m,z$i) & cycle;
+ labels(x$,$g,$i,$j,$k,$l,$m,$a,$b);
+enddef;
+
+def upside_down_left_wing(suffix @)=
+ pickup tiny.nib;
+ pos@g(bar,90); pos@i(bar,90);
+ x@g=x@; x@i=x@-2u-eps; y@g=y@i=y@;
+ draw z@g--z@i;
+ x@a=x@-2u; y@a=y@; x@b=x@-3.9u; x@c=x@-3.7u;
+ x@d=x@-4.2u; x@e=x@-2.5u; x@f=x@-2.5u;
+ y@b=y@; y@c=y@+.07h; y@d=y@+.15h; y@e=y@+.14h; y@f=y@;
+ pickup fine.nib;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a)
+ & flex(z@a,z@f,z@b) & cycle;
+ pickup fine.nib;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+def rt_wing(suffix $)(expr x_bar, slope)=
+ pickup fine.nib;
+ x$g=x$; x$:=x$+x_bar;
+ x$a=x$; x$b=x$+2u; x$c=x$+2u; x$d=x$+2u; x$e=x$+2.5u;
+ x$f=x$+.75u; x$h=x$a;
+ y$a=y$+slope; y$b=y$+o+slope; y$c=y$b-.025h; y$d=y$b-.075h;
+ y$e=y$b-.135h-o; y$f=y$b-.15h-o; y$g=y$; y$h=y$a;
+ if x_bar > 0:
+ pos$g(vair,90); pos$h(vair,90);
+ filldraw stroke z$g--z$h;
+ fi
+ filldraw flex(z$a,z$b,z$c) & flex(z$c,z$d,z$e)
+ & flex(z$e,z$f,z$a) & cycle;
+ labels(x$,$a,$b,$c,$d,$e,$f,$g);
+enddef;
+
+def lft_wing(suffix $)(expr x_bar, slope)=
+ pickup fine.nib;
+ x$g=x$; x$:=x$-x_bar;
+ x$a=x$; x$b=x$-2u; x$c=x$-2u; x$d=x$-2u; x$e=x$-2.5u;
+ x$f=x$-.75u; x$h=x$a;
+ y$a=y$-slope; y$b=y$-2slope; y$c=y$b-.025h; y$d=y$b-.075h;
+ y$e=y$b-.135h-o; y$f=y$b-.15h-o; y$g=y$; y$h=y$a;
+ if x_bar > 0:
+ pos$g(vair,90); pos$h(vair,90);
+ filldraw stroke z$g--z$h;
+ fi
+ filldraw flex(z$a,z$b,z$c) & flex(z$c,z$d,z$e)
+ & flex(z$e,z$f,z$a) & cycle;
+ labels(x$,$a,$b,$c,$d,$e,$f,$g);
+enddef;
+
+def right_wing_no_bar(suffix @)=
+ x@a=x@; y@a=y@;
+ x@b=x@-1.9u; x@c=x@-1.7u; x@d=x@-2.2u; x@e=x@-.5u; x@f=x@-.5u;
+ y@b=y@; y@c=y@-.07h; y@d=y@-.15h; y@e=y@-.14h; y@f=y@;
+ pickup fine.nib;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a) & flex(z@a,z@f,z@b)
+ & cycle;
+ pickup fine.nib;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+def r_wing(suffix $)=
+ pickup fine.nib; x$g=x$; y$g=y$;
+ x$i=x$+2u; x$j=x$+1.75u; x$k=x$+2.5u; x$l=x$+.5u; x$m=x$+.5u;
+ y$i=y$; y$j=y$-.07h; y$k=y$-.15h; y$l=y$-.14h; y$m=y$;
+ filldraw flex(z$i,z$j,z$k) & flex(z$k,z$l,z$g)
+ & flex(z$g,z$m,z$i) & cycle;
+ labels(x$,$g,$i,$j,$k,$l,$m,$a,$b);
+enddef;
+
+def p_wing(suffix $)=
+ pickup fine.nib; x$g=x$; y$g=y$;
+ x$i=x$-1.9u; x$j=x$-1.7u; x$k=x$-2.2u; x$l=x$-.5u; x$m=x$-.5u;
+ y$i=y$; y$j=y$-.07h; y$k=y$-.15h; y$l=y$-.14h; y$m=y$;
+ filldraw flex(z$i,z$j,z$k) & flex(z$k,z$l,z$g)
+ & flex(z$g,z$m,z$i) & cycle;
+ pickup fine.nib;
+ labels(x$,$g,$i,$j,$k,$l,$m,$a,$b);
+enddef;
+
+def t_wing(suffix $)=
+ pickup fine.nib;
+ x$a=x$; x$b=x$c=x$d=x$-2u; x$e=x$-2.5u; x$f=x$-.75u;
+ y$a=y$c=y$; y$b=y$+.025h; y$d=y$-.05h; y$e=y$-.11h-o;
+ y$f=y$-.125h-o;
+ filldraw flex(z$a,z$b,z$c) & flex(z$c,z$d,z$e)
+ & flex(z$e,z$f,z$a) & cycle;
+ labels($,$a,$b,$c,$d,$e,$f);
+enddef;
+
+%%% RING %%%
+
+def half_ring(suffix @) =
+ pickup fine.nib;
+ pos@1(vair,270); penpos@2(stem,360); pos@3(vair,90);
+ pos@4(vair,90); pos@5(vair,270);
+ x@5=x@4=x@+fine; x@1=x@3=x@5+1u; x@2=x@1+2u;
+ y@5=y@1=y@+.5o; y@3=y@4=y@5+.225h; y@2=.5[y@5,y@3];
+ filldraw stroke z@5e..pulled_super_arc.e(@1,@2)(superpull)
+ .. pulled_super_arc.e(@2,@3)(superpull)..z@4e;
+ penlabels(@,@1,@2,@3);
+enddef;
+
+def jj_ring(suffix @) =
+ pickup fine.nib;
+ pos@1(vair,270); pos@2(stem,0); pos@3(vair,90);
+ pos@4(vair,90); pos@5(vair,270);
+ x@5=x@4=x@+fine; x@1=x@3=x@5+.75u; x@2=x@1+1.72u;
+ y@5=y@1=y@+o; y@3=y@4=y@5+.225h; y@2=.5[y@5,y@3];
+ filldraw stroke z@5e...pulled_arc.e(@1,@2)
+ .. pulled_arc.e(@2,@3)...z@4e;
+ penlabels(@,@1,@2,@3);
+enddef;
+
+def large_ring(suffix $)(expr theta) =
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.25h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.2h; y$f=y$;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels($,$a,$b,$b',$c,$d,$d',$e,$f);
+enddef;
+
+def rfive_ring(suffix $)(expr theta)=
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.25h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.2h; y$f=y$;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def rseven_ring(suffix $)=
+ pickup fine.nib;
+ pos$a(vair,90); penpos$b(stem,180); pos$b'(stem,205);
+ pos$c(vair,270); penpos$d(stem,0); pos$d'(stem,0);
+ x$a=x$+3u; x$b.l=x$+2.25u; x$b'.l=x$+2.5u; x$c=x$+3u; x$d.l=x$+4u;
+ x$d'.l=x$+4u;
+ y$a=y$+.05h; y$b=y$-.05h; y$b'=y$-.25h; y$c=y$-.225h; y$d=y$-.1h;
+ y$d'=y$;
+ filldraw stroke z$a.e{left}...z$b.e..z$b'.e{right}...z$c.e{right}
+ .. z$d.e..z$d'.e..{left}z$a.e;
+ labels(z$a,z$b,z$b',z$c,z$d,z$d');
+enddef;
+
+def dfive_ring(suffix $)(expr theta)=
+ pickup fine.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.5u; x$b=x$b'=x$; x$d=x$d'=x$a+1.75u; x$e=x$f=x$+1.5u;
+ y$b=y$d'=y$+.175h; y$a=y$b+o; y$b'=y$d=y$c=y$-.075h; y$e=y$+.15h;
+ y$f=y$-.025h;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def gfive_ring(suffix $)(expr theta,s)=
+ pickup fine.nib;
+ transform t; t=identity slanted (s) rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.5u; x$b=x$b'=x$; x$d=x$d'=x$a+1.75u; x$e=x$f=x$+1.5u;
+ y$b=y$d'=y$+.195h; y$a=y$b+o; y$b'=y$d=y$c=y$-.095h; y$e=y$+.15h;
+ y$f=y$-.025h;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def nfour_ring(suffix $)(expr theta,s)=
+ pickup fine.nib;
+ transform t; t=identity slanted (s) rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$b=y$+.175h; y$a=y$b+.025h; y$b'=y$c=y$-.075h; y$e=y$+.15h; y$f=y$-.035h;
+ y$d'=y$+.175h; y$d=y$-.075h;
+ path p, q;
+ p=z$a...z$b..z$b'..z$c..z$d..z$d'...cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def lsix_ring(suffix $)(expr theta) =
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.25h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.2h; y$f=y$;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def ynseven_ring(suffix $)(expr theta,s)=
+ pickup fine.nib;
+ transform t; t=identity slanted (s) rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$b=y$d'=y$a=y$+.195h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.15h; y$f=y$-.025h;
+ path p, q;
+ p=z$a...z$b..z$b'..z$c..z$d..z$d'...cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def yfive_ring(suffix $)(expr theta)=
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.15h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.125h; y$f=y$-.025h;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+%%% ELLIPSE %%%
+
+def rt_half_ellipse(suffix @)(expr x_bar)=
+ pickup fine.nib;
+ x@g=x@; y@:=y@+.015h;
+ x@:=x@+x_bar; x@h=x@; x@a=x@+3.25u; x@b=x@a-u;
+ x@c=x@a-.5u; x@d=x@a-2.5u; x@e=x@; x@f=x@a-2.25u;
+ y@a=y@-.065h; y@b=y@+.05h; y@c=y@+.125h; y@d=y@+.1h; y@e=y@;
+ y@f=y@-.1h; y@g=y@-.015h; y@h=y@;
+ pos@g(vair,90); pos@h(vair,90);
+ if x_bar>0 :
+ filldraw stroke z@g.e--z@h.e;
+ fi
+ fill flex(z@a,z@b,z@c) & flex(z@c,z@d,z@e)...flex(z@e,z@f,z@a) & cycle;
+ penlabels(@,@a,@b,@c,@d,@e,@f,z@g,z@h);
+enddef;
+
+def lft_half_ellipse(suffix @)(expr x_bar)=
+ pickup fine.nib;
+ x@g=x@; y@:=y@-.03h;
+ x@:=x@-x_bar; x@h=x@; x@a=x@-3.25u; x@b=x@a+u; x@c=x@a+.5u; x@d=x@a+2.5u;
+ x@e=x@; x@f=x@a+2.25u;
+ y@a=y@-.125h; y@b=y@-.05h; y@c=y@+.065h; y@d=y@+.1h; y@e=y@; y@f=y@-.1h;
+ y@g=y@+.015h; y@h=y@;
+ pos@g(vair,90); pos@h(vair,90);
+ if x_bar>0 :
+ filldraw stroke z@g.e--z@h.e;
+ fi
+ fill flex(z@a,z@b,z@c) & flex(z@c,z@d,z@e)...flex(z@e,z@f,z@a) & cycle;
+ penlabels(@,@a,@b,@c,@d,@e,@f,z@g,z@h);
+enddef;
+
+%%% DIAGONALS %%%
+
+def top_diagonals(suffix @)=
+ penpos@a(vair,45); penpos@b(vair,-45);
+ penpos@c(vair,45); penpos@d(vair,-45);
+ penpos@e(2stem,45); penpos@f(2stem,-45);
+ z@a.l=z@.l; z@b.r=z@.r;
+ x@c=x@a-1u; y@c=y@a+1u; x@d=x@b+1u; y@d=y@b+1u;
+ x@e=x@c-1.2stem; y@e=y@c+1.2stem; x@f=x@d+1.2stem; y@f=y@d+1.2stem;
+ z@g=.5[z@c,z@e]; z@h=.5[z@d,z@f];
+ z@i=whatever[z@a.r,z@c.r]=whatever[z@b.r,z@d.r];
+ filldraw z@a.l--z@c.l--z@c.r--z@i--z@b.l--
+ z@d.l--z@d.r--z@b.r--z@a.l & cycle;
+ fill z@e.l..controls z@g..z@e.r &
+ z@e.r..{down}z@c.r--z@c.l{left}..z@e.l & cycle;
+ fill z@f.l..controls z@h..z@f.r &
+ z@f.r..{left}z@d.r--z@d.l{up}..z@f.l & cycle;
+enddef;
+
+%%% NO_CHAR %%%
+
+def no_char(expr code) =
+ "undefined character";
+ beginchar(code,9u#,body_height#,paren_depth#);
+ italcorr fig_height#*slant-.5u#; % same as for digits
+ adjust_fit(0,0);
+ fill (0,h)--(w,h)--(w,-d)--(0,-d)--cycle;
+ endchar;
+enddef;