POS/2 d,\`PCLT{|8;6TSI0lyTSI1*TSI2M+TSI3)UTSI5LcmapUY@cvt @fpgmvD0#gasp TglyfS)ءdSTheadἳ<6hhea <$hmtx5{=hkern*@|locaAhmaxpHC name<C@postaFprep 2:AHxxxxf/ HMS@ !"C @ <*NPIMina NPIR00NPNLPL:PPP&Pv P Q Qh Q Q Q^QQQTQQQJQQQ@QQQ6QQQ ,Q ~Q _ "!Q "Q #Q &$Q x%Q &Q 'O n(N )O *N \+O ,O -OJ.O/N0O81N2O3N&4Ot5O6O7Od8O9O:OT;N<O=NB>O?N@N.AM|BMCMDMfEMFMGMPHMIMJM:KMLMMM$NMrOMPMQM\RMSMTMFUMVMWM0XM~YMZM[Mh\M]M^MR_M`MaM<bMcMdN&eNtfNgN hN ^iN jN kN!HlN!mN!nN"2oN"pN"qN#rN#jsN#tN$uN$TvN$wN$xN%>yN%zN%{N&(|N&v}N&~N'N'`N'N'N(JN(N(N)4N)N)N*N*lN*N+N+VN+N+N,@N,N,N-*N-xN-N.N.bN.N.N/LN/N/N06N0N0N1 R1nR1R2R2dR2R3R3ZR3R3R4PR4R4R5FR5R5R6<R6R6R72R7R7R8(R8zR8R9R9pR9R:R:fR:R; R;\R;R<R>R>R>R?4R?R?R@*R@|R@RA RArRARBRBhRBRC RC^RC4rDVqIt+/* TT glyph 0, char 0xffff */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 1, char 0x7c (|) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 2, char 0xa0 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 3, char 0x5e (^) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 4, char 0x20 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 5, char 0x21 (!) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 6, char 0x22 (") */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 7, char 0x23 (#) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 8, char 0x24 ($) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 9, char 0x25 (%) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 10, char 0x27 (') */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 11, char 0x28 (() */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 12, char 0x29 ()) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 13, char 0x2a (*) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 14, char 0x2b (+) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 15, char 0x2d (-) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 16, char 0x2e (.) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 17, char 0x2f (/) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 18, char 0x30 (0) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 19, char 0x31 (1) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 20, char 0x32 (2) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 21, char 0x33 (3) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 22, char 0x34 (4) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 23, char 0x35 (5) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 24, char 0x36 (6) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 25, char 0x37 (7) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 26, char 0x38 (8) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 27, char 0x39 (9) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 28, char 0x3a (:) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 29, char 0x3b (;) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 30, char 0x3d (=) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 31, char 0x3c (<) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 32, char 0x3e (>) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ IUP[X] IUP[Y] /* TT glyph 33, char 0x3f (?) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 34, char 0x5c (\) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 35, char 0x60 (`) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 36, char 0x7b ({) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 37, char 0x7d (}) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 38, char 0x7e (~) */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 39, char 0x20ac */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 40, char 0x17d */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 41, char 0x201a */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 42, char 0x192 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 43, char 0x201e */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 44, char 0x2026 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 45, char 0x2020 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 46, char 0x2021 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 47, char 0x2c6 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 48, char 0x2030 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 49, char 0x160 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 50, char 0x2039 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 51, char 0x152 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 52, char 0x2018 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 53, char 0x2019 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 54, char 0x201c */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 55, char 0x201d */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 56, char 0x2022 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 57, char 0x2013 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 58, char 0x2014 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 59, char 0x2dc */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 60, char 0x2122 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 61, char 0x161 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 62, char 0x203a */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 63, char 0x153 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 64, char 0x178 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 65, char 0xa1 */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* TT glyph 66, char 0xa2 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 67, char 0xa3 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 68, char 0xa4 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 69, char 0xa5 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 70, char 0xa6 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 71, char 0xa7 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 72, char 0xa8 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 73, char 0xa9 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 74, char 0xaa */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 75, char 0xab */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 76, char 0xac */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 77, char 0xad */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 78, char 0xae */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 79, char 0xaf */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 80, char 0xb0 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 81, char 0xb1 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 82, char 0xb2 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 83, char 0xb3 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 84, char 0xb4 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 85, char 0xb5 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 86, char 0xb6 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 87, char 0xb7 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 88, char 0xb8 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 89, char 0xb9 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 90, char 0xba */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 91, char 0xbb */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 92, char 0xbc */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 93, char 0xbd */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 94, char 0xbe */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 95, char 0xbf */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 96, char 0xc0 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 97, char 0xc1 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 98, char 0xc2 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 99, char 0xc3 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 100, char 0xc4 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 101, char 0xc5 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 102, char 0xc6 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 103, char 0xc7 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 104, char 0xc8 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 105, char 0xc9 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 106, char 0xca */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 107, char 0xcb */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 108, char 0xcc */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 109, char 0xcd */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 110, char 0xce */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 111, char 0xcf */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 112, char 0xd0 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 113, char 0xd1 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 114, char 0xd2 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 115, char 0xd3 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 116, char 0xd4 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 117, char 0xd5 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 118, char 0xd6 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 119, char 0xd7 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 120, char 0xd8 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 121, char 0xd9 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 122, char 0xda */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 123, char 0xdb */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 124, char 0xdc */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 125, char 0xdd */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 126, char 0xde */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 127, char 0xdf */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 128, char 0xe0 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 129, char 0xe1 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 130, char 0xe2 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 131, char 0xe3 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 132, char 0xe4 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 133, char 0xe5 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 134, char 0xe6 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 135, char 0xe7 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 136, char 0xe8 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 137, char 0xe9 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 138, char 0xea */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 139, char 0xeb */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 140, char 0xec */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 141, char 0xed */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 142, char 0xee */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 143, char 0xef */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 144, char 0xf0 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 145, char 0xf1 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 146, char 0xf2 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 147, char 0xf3 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 148, char 0xf4 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 149, char 0xf5 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 150, char 0xf6 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 151, char 0xf7 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 152, char 0xf8 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 153, char 0xf9 */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 154, char 0xfa */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 155, char 0xfb */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 156, char 0xfc */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 157, char 0xfd */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 158, char 0xfe */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 159, char 0xff */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 160, char 0x40 (@) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 161, char 0x41 (A) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 162, char 0x42 (B) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 163, char 0x43 (C) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 164, char 0x44 (D) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 165, char 0x45 (E) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 166, char 0x46 (F) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 167, char 0x47 (G) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 168, char 0x48 (H) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 169, char 0x49 (I) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 170, char 0x4a (J) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 171, char 0x4b (K) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 172, char 0x4c (L) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 173, char 0x4d (M) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 174, char 0x4e (N) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 175, char 0x4f (O) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 176, char 0x50 (P) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 177, char 0x51 (Q) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 178, char 0x52 (R) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 179, char 0x53 (S) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 180, char 0x54 (T) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 181, char 0x55 (U) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 182, char 0x56 (V) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 183, char 0x57 (W) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 184, char 0x58 (X) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 185, char 0x59 (Y) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 186, char 0x5a (Z) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 187, char 0x5b ([) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 188, char 0x5d (]) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 189, char 0x61 (a) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 190, char 0x62 (b) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 191, char 0x63 (c) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 192, char 0x64 (d) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 193, char 0x65 (e) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 194, char 0x66 (f) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 195, char 0x67 (g) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 196, char 0x68 (h) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 197, char 0x69 (i) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 198, char 0x6a (j) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 199, char 0x6b (k) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 200, char 0x6c (l) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 201, char 0x6d (m) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 202, char 0x6e (n) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 203, char 0x6f (o) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 204, char 0x70 (p) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 205, char 0x71 (q) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 206, char 0x72 (r) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 207, char 0x73 (s) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 208, char 0x74 (t) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 209, char 0x75 (u) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 210, char 0x76 (v) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 211, char 0x77 (w) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 212, char 0x78 (x) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 213, char 0x79 (y) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 214, char 0x7a (z) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 215, char 0x26 (&) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 216, char 0x2c (,) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* TT glyph 217, char 0x5f (_) */ /* VTT 4.2 compiler Mon Jan 10 10:15:45 2005 */ /* auto-generated pre-program */ /* VTT 4.2 compiler Mon Jan 10 10:15:44 2005 */ /* InstructionsOn */ #PUSHOFF MPPEM[] #PUSH, 2047 GT[] MPPEM[] #PUSH, 8 LT[] OR[] IF[] #PUSH, 1,1 INSTCTRL[] EIF[] #PUSHON /* DropOutCtrlOff */ SCANCTRL[], 400 SCANTYPE[], 1 SCANTYPE[], 5 /* CvtCutIn */ SVTCA[Y] WS[], 22, 1 /* s[22] = diagonal control: on (by default) */ SCVTCI[], 256 #PUSHOFF MPPEM[] #PUSH, 29 GTEQ[] IF[] #PUSH, 160 SCVTCI[] EIF[] MPPEM[] #PUSH, 128 GTEQ[] IF[] #PUSH, 0 SCVTCI[] #PUSH, 22, 0 WS[] /* s[22] = diagonal control: off (by now) */ EIF[] #PUSHON /* Square aspect ratio? */ CALL[], 83 /* Grey scaling? */ CALL[], 84 SVTCA[Y] CALL[], 3, 42, 2, 85 CALL[], 9, 42, 8, 85 CALL[], 1, 42, 0, 85 CALL[], 7, 42, 6, 85 CALL[], 11, 42, 10, 85 CALL[], 15, 42, 0, 85 SVTCA[X] CALL[], 66, 65, 17, 31 SVTCA[Y] CALL[], 67, 65, 17, 31 SVTCA[X] CALL[], 68, 66, 27, 31 CALL[], 70, 68, 100, 31 SVTCA[Y] CALL[], 72, 67, 41, 31 CALL[], 74, 72, 100, 31 CALL[], 76, 68, 41, 31 SVTCA[X] CALL[], 81, 66, 27, 31 CALL[], 83, 81, 100, 31 SVTCA[Y] CALL[], 85, 67, 41, 31 CALL[], 87, 85, 100, 31 CALL[], 89, 81, 41, 31 SVTCA[X] CALL[], 97, 66, 27, 31 CALL[], 99, 97, 100, 31 SVTCA[Y] CALL[], 101, 67, 41, 31 CALL[], 103, 101, 100, 31 CALL[], 105, 97, 41, 31 SVTCA[X] CALL[], 110, 66, 27, 31 CALL[], 112, 110, 100, 31 SVTCA[Y] CALL[], 114, 67, 41, 31 CALL[], 116, 114, 100, 31 CALL[], 118, 110, 41, 31 RTG[] /* Function 0 takes 4 args */ FDEF[], 0 #BEGIN #PUSHOFF RCVT[] SWAP[] GC[N] ADD[] DUP[] #PUSH, 38 ADD[] #PUSH, 4 MINDEX[] SWAP[] SCFS[] SCFS[] #END ENDF[] #PUSHON /* Function 1 takes 4 args */ FDEF[], 1 #BEGIN #PUSHOFF RCVT[] SWAP[] GC[N] SWAP[] SUB[] DUP[] #PUSH, 38 SUB[] #PUSH, 4 MINDEX[] SWAP[] SCFS[] SCFS[] #END ENDF[] #PUSHON /* Function 2 takes 4 args */ FDEF[], 2 #BEGIN #PUSHOFF RCVT[] SWAP[] GC[N] ADD[] #PUSH, 32 SUB[] DUP[] #PUSH, 70 ADD[] #PUSH, 4 MINDEX[] SWAP[] SCFS[] SCFS[] #END ENDF[] #PUSHON /* Function 3 takes 4 args */ FDEF[], 3 #BEGIN #PUSHOFF RCVT[] SWAP[] GC[N] SWAP[] SUB[] #PUSH, 32 ADD[] DUP[] #PUSH, 38 SUB[] #PUSH, 32 SUB[] #PUSH, 4 MINDEX[] SWAP[] SCFS[] SCFS[] #END ENDF[] #PUSHON /* Function 4 takes 4 args */ FDEF[], 4 #BEGIN #PUSHOFF RCVT[] SWAP[] GC[N] ADD[] #PUSH, 64 SUB[] DUP[] #PUSH, 102 ADD[] #PUSH, 4 MINDEX[] SWAP[] SCFS[] SCFS[] #END ENDF[] #PUSHON /* Function 5 takes 4 args */ FDEF[], 5 #BEGIN #PUSHOFF RCVT[] SWAP[] GC[N] SWAP[] SUB[] #PUSH, 64 ADD[] DUP[] #PUSH, 38 SUB[] #PUSH, 64 SUB[] #PUSH, 4 MINDEX[] SWAP[] SCFS[] SCFS[] #END ENDF[] #PUSHON /* Function 6 takes 2 args */ FDEF[], 6 #BEGIN #PUSHOFF SVTCA[X] SRP0[] DUP[] ALIGNRP[] SVTCA[Y] ALIGNRP[] #END #PUSHON ENDF[] /* Function 7 takes 2 arguments */ FDEF[], 7 #BEGIN #PUSHOFF DUP[] RCVT[] SWAP[] DUP[] #PUSH, 205 WCVTP[] SWAP[] DUP[] #PUSH, 346 LTEQ[] IF[] SWAP[] DUP[] #PUSH, 141 WCVTP[] SWAP[] EIF[] DUP[] #PUSH, 237 LTEQ[] IF[] SWAP[] DUP[] #PUSH, 77 WCVTP[] SWAP[] EIF[] DUP[] #PUSH, 4 MINDEX[] LTEQ[] IF[] SWAP[] DUP[] #PUSH, 13 WCVTP[] SWAP[] EIF[] POP[] POP[] #END #PUSHON ENDF[] /* Function 8 takes 1 argument */ FDEF[], 8 #BEGIN #PUSHOFF DUP[] DUP[] RCVT[] RTG[] ROUND[Gr] WCVTP[] DUP[] #PUSH, 1 ADD[] DUP[] RCVT[] #PUSH, 70 SROUND[] ROUND[Gr] ROLL[] RCVT[] ADD[] WCVTP[] #END #PUSHON ENDF[] /* Function 9 takes 0 arguments */ FDEF[], 9 #BEGIN #PUSHOFF SVTCA[X] #PUSH, 11, 10 RS[] SWAP[] RS[] NEG[] SPVFS[] #END #PUSHON ENDF[] /* Function 10 takes 0 arguments */ FDEF[], 10 #BEGIN #PUSHOFF SVTCA[Y] #PUSH, 10, 11 RS[] SWAP[] RS[] SFVFS[] #END #PUSHON ENDF[] /* Function 11 takes 2 args */ FDEF[], 11 #BEGIN #PUSHOFF SVTCA[Y] #PUSH, 40 SWAP[] WCVTF[] #PUSH, 1, 40 MIAP[r] SVTCA[X] #PUSH, 40 SWAP[] WCVTF[] #PUSH, 2, 40 RCVT[] MSIRP[m] #PUSH, 2, 0 SFVTL[r] GFV[] #END ENDF[] #PUSHON /* Function 13 */ FDEF[], 13 #BEGIN #PUSHOFF DUP[] RCVT[] #PUSH, 3 CINDEX[] RCVT[] SUB[] ABS[] #PUSH, 80 LTEQ[] IF[] RCVT[] WCVTP[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 15 takes 1 arg */ FDEF[], 15 #BEGIN #PUSHOFF DUP[] RCVT[] #PUSH, 0 RS[] ADD[] WCVTP[] #END ENDF[] #PUSHON /* Function 16 takes 0 arguments */ FDEF[], 16 #BEGIN #PUSHOFF SVTCA[X] #PUSH, 6 RS[] #PUSH, 7 RS[] NEG[] SPVFS[] #END #PUSHON ENDF[] /* Function 17 takes 1 arg */ FDEF[], 17 #BEGIN #PUSHOFF DUP[] ROUND[Bl] #PUSH, 64 SUB[] #PUSH, 0 MAX[] DUP[] #PUSH, 44, 192 ROLL[] MIN[] #PUSH, 4096 DIV[] ADD[] CALL[] GPV[] ABS[] SWAP[] ABS[] SUB[] NOT[] IF[] #PUSH, 3 SUB[] EIF[] #END ENDF[] #PUSHON /* Function 20 takes 4 arguments */ FDEF[], 20 #BEGIN #PUSHOFF ROLL[] SPVTCA[X] RCVT[] ROLL[] ROLL[] SDPVTL[R] #PUSH, 17 CALL[] #PUSH, 41 SWAP[] WCVTP[] #PUSH, 41 ROFF[] MIRP[mRBl] MIRP[m>RGr] #END #PUSHON ENDF[] /* Function 35 takes 5 arguments */ FDEF[], 35 #BEGIN #PUSHOFF SVTCA[X] #PUSH, 5 CINDEX[] SRP0[] SWAP[] DUP[] ROLL[] MIRP[MRBl] MIRP[m>RGr] #END #PUSHON ENDF[] /* Function 36 takes 6 arguments */ FDEF[], 36 #BEGIN #PUSHOFF SVTCA[X] #PUSH, 6 CINDEX[] SRP0[] MIRP[MRBl] MIRP[m>RGr] #END #PUSHON ENDF[] /* Function 37 takes 1 args */ FDEF[], 37 #BEGIN #PUSHOFF DUP[] #PUSH, 1 ADD[] SVTCA[X] SRP0[] DUP[] ALIGNRP[] SVTCA[Y] ALIGNRP[] #END #PUSHON ENDF[] /* Function 38 takes 1 args */ FDEF[], 38 #BEGIN #PUSHOFF DUP[] #PUSH, 1 SUB[] SVTCA[X] SRP0[] DUP[] ALIGNRP[] SVTCA[Y] ALIGNRP[] #END #PUSHON ENDF[] /* Function 40 takes 0 arguments */ FDEF[], 40 #BEGIN #PUSHOFF SVTCA[Y] #PUSH, 7 RS[] #PUSH, 6 RS[] SFVFS[] #END #PUSHON ENDF[] /* Function 44 takes 2 arguments */ FDEF[], 44 #BEGIN #PUSHOFF POP[] POP[] GPV[] ABS[] SWAP[] ABS[] MAX[] #PUSH, 16384 DIV[] #END #PUSHON ENDF[] /* Function 45 takes 2 arguments */ FDEF[], 45 #BEGIN #PUSHOFF POP[] #PUSH, 128 LTEQ[] IF[] GPV[] ABS[] SWAP[] ABS[] MAX[] #PUSH, 8192 DIV[] ELSE[] #PUSH, 0, 64, 47 CALL[] EIF[] #PUSH, 2 ADD[] #END #PUSHON ENDF[] /* Function 46 takes 2 arguments */ FDEF[], 46 #BEGIN #PUSHOFF POP[] #PUSH, 192 LTEQ[] IF[] GPV[] ABS[] SWAP[] ABS[] MAX[] #PUSH, 5461 DIV[] ELSE[] #PUSH, 0, 128, 47 CALL[] EIF[] #PUSH, 2 ADD[] #END #PUSHON ENDF[] /* Function 47 takes 2 arguments */ FDEF[], 47 #BEGIN #PUSHOFF GPV[] ABS[] SWAP[] ABS[] MAX[] #PUSH, 16384 DIV[] ADD[] SWAP[] POP[] #END #PUSHON ENDF[] /* Function 53: */ /* IN SR_ARG, l1, r1, l2, r2 */ /* OUT sum/2, sum/2 */ FDEF[], 53 #BEGIN #PUSHOFF RCVT[] SWAP[] RCVT[] ADD[] SWAP[] RCVT[] ADD[] SWAP[] RCVT[] ADD[] SWAP[] SROUND[] ROUND[Gr] RTG[] #PUSH, 128 DIV[] DUP[] #END #PUSHON ENDF[] /* Function 54: */ /* STACK: sum/2, sum/2 */ /* IN li, rj */ /* OUT - - - - */ FDEF[], 54 #BEGIN #PUSHOFF #PUSH, 4 MINDEX[] #PUSH, 4 MINDEX[] #PUSH, 4 CINDEX[] #PUSH, 4 CINDEX[] RCVT[] SWAP[] RCVT[] DUP[] #PUSH, 3 MINDEX[] ADD[] DIV[] MUL[] ROUND[Gr] DUP[] #PUSH, 3 MINDEX[] SUB[] NEG[] ROLL[] SWAP[] WCVTP[] /* cvt[rj] = sum/2 - sum/2 * ratio */ WCVTP[] /* cvt[li] = sum/2 * ratio */ #END #PUSHON ENDF[] /* Function 55: */ /* IN l1, r2 */ /* OUT - - */ FDEF[], 55 #BEGIN #PUSHOFF DUP[] RCVT[] #PUSH, 0 EQ[] IF[] #PUSH, 64 WCVTP[] /* cvt[r2] = 1 */ DUP[] RCVT[] #PUSH, 64 SUB[] WCVTP[] /* cvt[l1] = cvt[l1] - 1 */ ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 56: */ /* IN i = index, pi = parent->index, */ /* GLOBALS: Uses CVT[47] representative->distance, and */ /* CVT[48] parent->distance (both unhinted) */ FDEF[], 56 #BEGIN #PUSHOFF RCVT[] #PUSH, 48, 47 RCVT[] SWAP[] RCVT[] SUB[] ADD[] #PUSH, 1 ADD[] ROUND[Bl] WCVTP[] #END #PUSHON ENDF[] /* Function 57: */ /* IN ratio = reprDist/parentDist (F26.6) */ /* IN rd = representative->distance, p = pt->ppem */ /* GLOBALS: S[20] = ratio, cvt[47] = repr */ FDEF[], 57 #BEGIN #PUSHOFF MPPEM[] LTEQ[] IF[] #PUSH, 47 SWAP[] WCVTF[] #PUSH, 20 SWAP[] WS[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 58: */ /* IN i = index, v = value, p = ppem */ /* cvt[i] = max (v, cvt[i]) for ppem >= p */ FDEF[], 58 #BEGIN #PUSHOFF MPPEM[] LTEQ[] IF[] DUP[] #PUSH, 3 CINDEX[] RCVT[] ROUND[Bl] GTEQ[] IF[] WCVTP[] ELSE[] POP[] POP[] EIF[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 59: */ /* IN i = index, pi = parent->index, */ /* GLOBALS: Uses CVT[47] representative->distance, and */ /* CVT[48] parent->distance (both unhinted) */ FDEF[], 59 #BEGIN #PUSHOFF RCVT[] #PUSH, 20 RS[] #PUSH, 0 ADD[] MUL[] #PUSH, 1 ADD[] ROUND[Bl] WCVTP[] #END #PUSHON ENDF[] /* Function 60: */ /* IN */ /* GLOBALS: Uses CVT[50] (min sidebearing sum) */ FDEF[], 60 #BEGIN #PUSHOFF #PUSH, 47 RCVT[] WCVTP[] #END #PUSHON ENDF[] /* Function 61: */ /* IN i = index, k = keyIndex */ /* cvt[i] = cvt[i] + cvt[keyIndex] */ FDEF[], 61 #BEGIN #PUSHOFF RCVT[] SWAP[] DUP[] RCVT[] ROLL[] ADD[] WCVTP[] #END #PUSHON ENDF[] /* Function 62: */ /* IN i = index, ki = keyIndex, ci = ctrlIndex */ /* cvt[i] = cvt[ki] + cvt[ci] */ FDEF[], 62 #BEGIN #PUSHOFF RCVT[] SWAP[] RCVT[] ADD[] WCVTP[] #END #PUSHON ENDF[] /* Function 63: */ /* IN ThresholdPpem */ /* if (MPPEM > ThresholdPpem) borrow .5 pixel */ FDEF[], 63 #BEGIN #PUSHOFF MPPEM[] SWAP[] LTEQ[] IF[] #PUSH, 51, -32, 52, 32 ELSE[] #PUSH, 51, 0, 52, 0 EIF[] WCVTP[] WCVTP[] #END #PUSHON ENDF[] /* Function 64 takes 5 arguments */ FDEF[], 64 #BEGIN #PUSHOFF #PUSH, 22 RS[] IF[] #PUSH,3 MINDEX[] RCVT[] ROLL[] IF[] ABS[] FLOOR[] #PUSH,31 ADD[] ELSE[] ABS[] #PUSH,32 ADD[] FLOOR[] DUP[] IF[] ELSE[] POP[] #PUSH,64 EIF[] #PUSH,1 SUB[] EIF[] SWAP[] IF[] NEG[] EIF[] #PUSH,41 SWAP[] WCVTP[] SWAP[] SRP0[] #PUSH,41 MIRP[m,,,,70 */ /* Highest PPEM in range to be modified (inclusive */ /* Lowest PPEM in range to be modified (inclusive) */ /* CVT to be modified */ /* Amount to change CVT, in +/- 64ths */ FDEF[],70 #BEGIN #PUSHOFF MPPEM[] GTEQ[] SWAP[] MPPEM[] LTEQ[] AND[] IF[] DUP[] RCVT[] ROLL[] ADD[] WCVTP[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 71 takes 4 arguments */ /* This function changes a CVT at a specific PPEM */ /* CALL[],,,,71 */ /* PPEM to be modified */ /* CVT to be modified */ /* Amount to change CVT, in +/- 64ths */ FDEF[],71 #BEGIN #PUSHOFF MPPEM[] EQ[] IF[] DUP[] RCVT[] ROLL[] ADD[] WCVTP[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 72 takes 5 arguments */ /* This function moves a point within a range of PPEM sizes */ /* CALL[],,,,,72 */ /* Highest PPEM in range to be modified (inclusive */ /* Lowest PPEM in range to be modified (inclusive) */ /* Amount to move point, in +/- 64ths */ /* point to be modified */ FDEF[],72 #BEGIN #PUSHOFF MPPEM[] GTEQ[] SWAP[] MPPEM[] LTEQ[] AND[] IF[] SHPIX[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 73 takes 4 arguments */ /* This function moves a point at a specific PPEM */ /* CALL[],,,,73 */ /* PPEM to be modified */ /* Amount to move point, in +/- 64ths */ /* point to be moved */ FDEF[],73 #BEGIN #PUSHOFF MPPEM[] EQ[] IF[] SHPIX[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /***** The following 4 functions essentially repeat the above 4 however, they accept an extra flag to indicate whether the delta applies to grey scaling (1) or black-and-white (0) only. *****/ /* CALL[],,,,,,74 */ FDEF[],74 #BEGIN #PUSHOFF #PUSH, 2 RS[] EQ[] IF[] /* if storage #2 and flag match */ #PUSH, 70 CALL[] /* forward to "standard" function */ ELSE[] POP[] /* else cleanup stack and bail out */ POP[] POP[] POP[] EIF[] #PUSHON #END ENDF[] /* CALL[],,,,,75 */ FDEF[],75 #BEGIN #PUSHOFF #PUSH, 2 RS[] EQ[] IF[] /* if storage #2 and flag match */ #PUSH, 71 CALL[] /* forward to "standard" function */ ELSE[] POP[] /* else cleanup stack and bail out */ POP[] POP[] EIF[] #PUSHON #END ENDF[] /* CALL[],,,,,,76 */ FDEF[],76 #BEGIN #PUSHOFF #PUSH, 2 RS[] EQ[] IF[] /* if storage #2 and flag match */ #PUSH, 72 CALL[] /* forward to "standard" function */ ELSE[] POP[] /* else cleanup stack and bail out */ POP[] POP[] POP[] EIF[] #PUSHON #END ENDF[] /* CALL[],,,,,77 */ FDEF[],77 #BEGIN #PUSHOFF #PUSH, 2 RS[] EQ[] IF[] /* if storage #2 and flag match */ #PUSH, 73 CALL[] /* forward to "standard" function */ ELSE[] POP[] /* else cleanup stack and bail out */ POP[] POP[] EIF[] #PUSHON #END ENDF[] /************* New glyph hinting functions ***************/ /* Function 78 takes 5 arguments */ /* Moves a point along the angle of two pts. VincentC 5-15-95 */ /* The point being moved should also be one of the pts for the anlge */ /* CALL[], , , , , , */ /* in 64ths */ /* ppem size to cutoff the function (inclusive) */ /* ppem size to cutoff the function (inclusive) */ /* function number, here should be 1 */ FDEF[],78 #BEGIN #PUSHOFF DUP[] ROLL[] SFVTL[r] SWAP[] MPPEM[] GTEQ[] ROLL[] MPPEM[] LTEQ[] AND[] IF[] SWAP[] SHPIX[] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 79 takes 3 arguments , used for Y positioning of accents */ /* Example: CALL[], 1, 10, 14, 79 call,outline#,a1,b1,funct# */ FDEF[], 79 #BEGIN SVTCA[Y] #PUSHOFF DUP[] ROLL[] MD[N] #PUSH, 0 LTEQ[] IF[] #PUSH, 64 SWAP[] DUP[] ROLL[] SHPIX[] SRP2[] SHC[2] ELSE[] POP[] POP[] EIF[] #END #PUSHON ENDF[] /* fn 80 centers accents on base glyph in x direction CALL[], , , , , , 80 - offset denotes accent's offset in fUnits (e.g. for grave, acute) - offset may be 0 (e.g. perfectly centered circumflex) - left and right point may be the same (e.g. center of circumflex) fn call must be followed by SHC[2], for each contour that is part of the accent */ FDEF[], 80 #BEGIN #PUSHOFF SVTCA[X] GC[N] /* rightBase.x */ SWAP[] GC[N] /* leftBase.x */ ADD[] /* rightBase.x + leftBase.x */ SWAP[] GC[N] /* rightAccent.x */ SUB[] /* rightBase.x + leftBase.x - rightAccent.x */ SWAP[] DUP[] /* save leftAccent for MSIRP below */ SRP0[] DUP[] GC[N] /* leftAccent.x */ ROLL[] SUB[] /* rightBase.x + leftBase.x - (rightAccent.x + leftAccent .x) */ #PUSH, -128 DIV[] /* (leftAccent .x + rightAccent.x)/2 - (leftBase.x + rightBase.x)/2 */ ROLL[] /* fetch offset */ #PUSH, 64, 64 ROLL[] /* fetch offset again... */ WCVTF[] /* scale... */ RCVT[] /* fetch scaled offset */ ADD[] ROUND[Gr] /* add and round */ MSIRP[m] #PUSHON #END ENDF[] /* Function 81 TAKES 3 ARGUMENTS, aligns a point until a specific distance is reached. Used for flares. First link p1 to p2, then call the function. VC Dec 11,1995*/ /* CALL[], amt, p1, p2, 81 ... amt is in 64ths, p1 is start pt, p2 is point moved, 81 is function# */ FDEF[], 81 #BEGIN #PUSHOFF DUP[] ROLL[] SWAP[] MD[N] ABS[] ROLL[] SWAP[] GTEQ[] IF[] ALIGNRP[] ELSE[] POP[] EIF[] #END #PUSHON ENDF[] /* Function 82 takes 1 argument (ppemLimit), used in Diagonal, DAlign, and Intersect if current ppem size < ppemLimit then RDTG[] else ROFF[] end. B.St. 23-Jun-98 */ FDEF[],82 #BEGIN #PUSHOFF MPPEM[] GT[] IF[] #BEGIN RDTG[] #END ELSE[] #BEGIN ROFF[] #END EIF[] #PUSHON #END ENDF[] /***** functions for control program *****/ /* fn 83 determines whether or not the aspect ratio of the resolutions in x and y is the same, recording the result in s[18] */ FDEF[],83 #BEGIN #PUSHOFF #PUSH, 18 SVTCA[Y] MPPEM[] SVTCA[X] MPPEM[] EQ[] WS[] /* s[18] = square (1:1) aspect ratio */ #PUSHON #END ENDF[] /* fn 84 determines whether or not we are cur- rently rasterizing with grey scales, recor- ding the result in s[2], used in functions 74 through 77 */ FDEF[],84 #BEGIN #PUSHOFF #PUSH,2,0 WS[] /* s[2] = grey scaling: off (by default) */ #PUSH,35,1 /* 35 = MS Rasterizer version 1.7 */ GETINFO[] /* 1 = tell GETINFO to give us the rasterizer version */ LTEQ[] /* 35 <= version ? */ #PUSH,64,1 /* 64 = highest rasterizer version assigned to MS */ GETINFO[] /* 1 = tell GETINFO to give us the rasterizer version */ GTEQ[] /* 64 >= version ? */ AND[] /* 35 <= version && version <= 64 ? */ IF[] /* if so, we're running MS rasterizer version 1.7 or higher */ #PUSH,4096,32 /* 4096 = flag returned by GETINFO if grey scaling bit is on */ GETINFO[] /* 32 = tell GETINFO to give us the grey scaling bit */ EQ[] /* 4096 == flag ? */ IF[] /* if so, we're running under grey scaling */ #PUSH,2,1 WS[] /* s[2] = grey scaling: on (by now) */ EIF[] EIF[] #PUSHON #END ENDF[] /* fn 85 equalizes double specified heights below a given ppem size CALL[], , , , 85 */ FDEF[], 85 #BEGIN #PUSHOFF RCVT[] /* pick absolute (square) height */ RTG[] ROUND[Gr] SWAP[] MPPEM[] LTEQ[] /* specified ppem size <= actual ppem size ? */ IF[] SWAP[] DUP[] RCVT[] /* pick relative height (overshoot) */ DUP[] ABS[] #PUSH,64 LT[] /* Abs(overshoot) < 1 pixel ? */ IF[] RUTG[] /* force overshoot */ EIF[] ROUND[Gr] ROLL[] ADD[] /* add overshoot to square height */ EIF[] WCVTP[] /* make this the round height */ #END #PUSHON ENDF[] /* fn 86, 87 reserved for "inheritence by pixel size" */ /* fn 88 sets up 4 storage locations with the x and y components of the italic and adjusted italic angle as follows: s[10] = italic angle y s[11] = italic angle x s[ 6] = adjusted italic angle y s[ 7] = adjusted italic angle x CALL[], , , 88 */ FDEF[], 88 #BEGIN #PUSHOFF #PUSH, 0 /* Use twilight points to calculate stroke angles */ SZPS[] #PUSH, 2 /* Dup the two parameters, we need them twice */ CINDEX[] #PUSH, 2 CINDEX[] SVTCA[X] /* Set twilight point 1 with italic run cvt in x */ #PUSH, 1 SWAP[] MIAP[r] SVTCA[Y] /* Set twilight point 2 with italic rise cvt in y */ #PUSH, 2 SWAP[] MIAP[r] #PUSH, 1, 2 /* and let the rasterizer do the math */ SPVTL[r] GPV[] #PUSH, 10 /* store the x and y components of the italic angle */ SWAP[] NEG[] /* notice that since we're essentially setting the pv to a line */ WS[] /* from (runCvt,0) to (0,riseCvt), the calculcated pv will be */ #PUSH, 11 /* proportional to (runCvt,0) - (0,riseCvt) = (runCvt,-riseCvt). */ SWAP[] /* Hence we have to mirror the result at the base line, which is */ WS[] /* done by flipping (negating) the sign of the y component here. */ SVTCA[X] /* same for the adjusted italic angle */ #PUSH, 1 SWAP[] MIAP[R] /* except to round the twilight point in x... */ SVTCA[Y] #PUSH, 2 SWAP[] MIAP[R] /* ...and in y */ #PUSH, 1, 2 SPVTL[r] GPV[] #PUSH, 6 SWAP[] NEG[] /* same neg as above */ WS[] #PUSH, 7 SWAP[] WS[] #PUSH, 1 /* restore graphics state */ SZPS[] SVTCA[X] #PUSHON #END ENDF[] /***** Visual TrueType 4.2 Control Program The new control program allows for a much easier setup of cvts and their hierarchy (inheritence) and exceptions (deltas) than the previous cvt and prep. It is intended to declare - cvt values - relations between dependant (child) and independent (parent) cvts - the ppem size below which child and parent cvts have the same values - relative or absolute inheritence - deltas for cvts in much the same way as deltas for control points in VTT Talk - additional (user-defined) character groups - spacing characters for user-defined character groups - additional (user-defined) cvt categories - global (font-wide) settings for - the range of ppem sizes at which instructions are on - the ppem size below which drop-out control is on - values for cvt cut-ins - cvt attributes, last but not least, without using hexadecimal numbers... All these declarations are compiled to the actual prep upon compiling the cvt. *****/ /* Additional Character group declarations To declare additional character groups, such as for greek characters, use the following example: GROUP GreekUC GROUP GreekLC GROUP GreekFig GROUP GreekPunct This will introduce four new character groups: GreekUC, GreekLC, GreekFig, and GreekPunct. These groups can then be used in the CharGrp.TXT template to associate each character with its character group. Subsequently, when you declare cvts, you can put the values for the Greek glyphs into the Greek group. Finally, when you use the link tool on a Greek glyph, the tool will choose the cvt from the Greek group. Likewise, if you need more character groups for the Latin glyphs, such as for small caps, superiors, or inferiors, feel free to add them. The limit is currently 256, 8 of which are reserved and comprise the standard character groups UpperCase, LowerCase, Figure, and Other. Along with user-defined character groups, you may wish to define a series of characters to check the spacing. The standard UpperCase group, for instance, uses "HH HOHO OO " and replaces all the blanks by the current glyph in the main window displays this as the first part of the sample text at the top of the window. Very likely, for other groups you will need a different sequence of characters. Declare them as in the following example: GROUP LatinUC "HH HOHO OO " You can put any character between the double quotes on the right hand side. If it's not on your keyboard, use the following syntax: ^574^ or ~414~ to enter the character's glyph index (between carets) or unicode (between tildes), respectively. Additional Feature category declarations To declare additional feature categories, such as for flares, use the following example CATEGORY Flare This will introduce a new character group Flare, which you may then combine with all character groups, as shown further below. Global settings Following the user-defined character groups and feature categories are the global (font-wide) settings. The range of ppem sizes at which instructions are on is specified as follows: */ InstructionsOn @8..2047 /* This compiles into appropriate code in the prep to turn off instructions below 8 ppem and above 2047 ppem. Feel free to change these numbers as you see fit. The ppem size below which drop-out control is on is specified as follows: */ DropOutCtrlOff @144 /* This compiles into approriate code in the prep to turn off drop-out control at and above 144 ppem. The special value of 255 ppem means to do drop-out control always. Users familiar with SCANCTRL and SCANTYPE may wish to control the bits individually, hence as an alternative they may use the following pair of assignments ScanCtrl = 511 ScanType = 5 which would achieve the same goal. The cvt cut-in values are specified as follows: */ CvtCutIn = 4, 2.5@29, 0@128 /* This means that we want the cvt cut-in value to be - 4 pixels for small ppem sizes in order to force distances to the cvt - 2.5 pixels at medium ppem sizes (here starting at 29 ppem), and - 0 pixels at large ppem sizes (here starting at 128 ppem), to give full freedom to the actual widths. Again, this compiles into appropriate code in the prep. You may wish to experiment with the threshold ppem sizes and the pixel amounts, and you may add a fourth setting inbetween, such as CvtCutIn = 4, 2.5@29, 1@72, 0@128 or use only two, such as CvtCutIn = 4, 0@128 whichever serves best. Finally, the actual cvt numbers start. Recall from the dialog box entitled "Edit cvt attributes..." that cvts have four different attributes - character group - link color - link direction - feature category Instead of combining these four into a cryptic hexadecimal number, we now spell them out in plain English. For example, UpperCase Black X StraightStroke 68: 192 introduces cvt number 68 with value 192 fUnits, with the combined attribute UpperCase Black X StraightStroke. Once you have specified e.g. StraightStroke, this part of the attribute remains in effect for all the following cvts, hence you may wish to organize your cvts accordingly, as we did below. Same holds true for the X, hence keep the X, but change the feature category to RoundStroke and you get all UpperCase Black X RoundStroke cvts, etc. Indentation is optional but may increase legibility; feel free to use as many blanks or tabs you like. Lets start with the heights: */ UpperCase Grey Y SquareHeight 2: 0 /* replace the 0 with the actual cap height */ 8: 0 /* the base "height" remains 0 */ RoundHeight 3: 0 ~ 2 @42 /* replace the 0 with the actual cap height overshoot */ 9: -0 ~ 8 @42 /* replace the 0 with the base height undershoot */ /* The ~2 @42 means the following: - The 2 designates the parent cvt, which is the cap height in this case. - The tilde designates a relative cvt value, which is the overshoot amount in this case. This amount will be used on top of the cap height. - The 42 means that the overshoot should kick in at 42 ppem. Replace the 42 by whichever ppem size you wish the overshoot to kick in. 42 ppem is merely the ppem size corresponding to 10 pt on a 300 dpi printer, a size at which we may or may not wish to see the overshoots already. */ LowerCase SquareHeight 0: 0 6: 0 10: 0 14: -0 RoundHeight 1: 0 ~ 0 @42 7: 0 ~ 6 @42 11: -0 ~ 10 @42 15: -0 ~ 0 @42 Figure SquareHeight 4: 0 12: 0 RoundHeight 5: 0 13: 0 Other SquareHeight 16: 0 18: 0 RoundHeight 17: 0 19: 0 /* Now we do the weights. We start with the grand parent cvt. Since the attributes remain in effect for all the following cvts, and since the grand parent cvt does not belong to a particular group etc., we reset the attributes as follows: */ AnyGroup AnyColor AnyDirection AnyCategory 65: 0 /* replace the 0 with the actual weight of the grand parent cvt */ X 66: 0 = 65 @17 /* replace the 0 with weight of parent x distances */ Y 67: 0 = 65 @17 /* replace the 0 with weight of parent y distances */ /* The = 65 @17 means the following: - The 65 designates the parent cvt, which is the grand parent in this case. - The equals sign designates an absolute cvt value. Unlike relative cvts, put the actual (absolute) amount here, not merely the extra (relative) amount, as it will not be added to the parent. - The 17 means that the cvt may break lose from its parent at 17 ppem. Replace the 17 by whichever ppem size you wish this to happen. 17 ppem is merely the size at which a typical font will make the transition from 1-pixel-wide to 2-pixel-wide stems. Each cvt declaration can have a list of deltas. Using the above example: 67: 0 = 65 @17 Delta (1 @17, -1 @31..36) The Delta (1 @17, -1 @31..36) is optional and means the following: - at 17 ppem we want to add 1 pixel to the weight of this distance - at 31 ppem through (and including) 36 ppem we want to subtract 1 pixel You can have more sizes, if you wish. Now we start with the UpperCase characters */ UpperCase Grey X ItalicRun 20: 0 Y ItalicRise 21: 0 /* For italic fonts, we have to specify the components of the italic angle. These are - the italic run (how much across), and - the italic rise (how much up). You will have an italic rise for each character group, and you may have several italic runs for each character group, to account for varying italic angles such as in fonts like Garamond. For roman fonts, we don't need these cvts. Next, we do the various strokes. */ UpperCase Black X StraightStroke 68: 0 = 66 @27 69: 0 RoundStroke 70: 0 = 68 @100 /* You can use relative inheritance for round strokes. For example, instead of the absolute distance you could use the difference between round and straight strokes, as was done for heights: 70: 5 ~ 68 @100 The 5 means the round stroke is 5 fUnits wider than the straight stroke (that is, cvt 68). */ 71: 0 Y StraightStroke 72: 0 = 67 @ 41 73: 0 RoundStroke 74: 0 = 72 @100 75: 0 Diag StraightStroke 76: 0 = 68 @ 41 77: 0 White X SerifExt 78: 0 79: 0 Black Y SerifHeight 80: 0 /* Of course, SerifExt and SerifHeight are needed only for fonts that actually have serifs. You can remove them for all other fonts. We repeat the same pattern for the LowerCase characters. Again, ItalicRun and ItalicItalic Rise are needed only for italic fonts */ LowerCase Grey X ItalicRun 22: 0 Y ItalicRise 23: 0 Black X StraightStroke 81: 0 = 66 @ 27 82: 0 RoundStroke 83: 0 = 81 @100 84: 0 Y StraightStroke 85: 0 = 67 @ 41 86: 0 RoundStroke 87: 0 = 85 @ 100 88: 0 Diag StraightStroke 89: 0 = 81 @ 41 90: 0 White X SerifExt 91: 0 92: 0 Black Y SerifHeight 93: 0 X Distance 94: 0 Y 95: 0 White 96: 0 /* Same pattern for the Figures... */ Figure Grey X ItalicRun 24: 0 Y ItalicRise 25: 0 Black X StraightStroke 97: 0 = 66 @ 27 98: 0 RoundStroke 99: 0 = 97 @ 100 100: 0 Y StraightStroke 101: 0 = 67 @ 41 102: 0 RoundStroke 103: 0 = 101 @ 100 104: 0 Diag StraightStroke 105: 0 = 97 @ 41 106: 0 White X SerifExt 107: 0 108: 0 Black Y SerifHeight 109: 0 /* ...and all the other glyphs. */ Other X StraightStroke 110: 0 = 66 @ 27 111: 0 RoundStroke 112: 0 = 110 @ 100 113: 0 Y StraightStroke 114: 0 = 67 @ 41 115: 0 RoundStroke 116: 0 = 114 @ 100 117: 0 Diag StraightStroke 118: 0 = 110 @ 41 119: 0 /* Here, you would add your own groups and individual cvts, as they are needed to control a feature that several glyphs have in common. Notice: To find out which is the next cvt number you can use, consult the title bar of the control program. It indicates the number of entries in the cvt. Since we start counting at 0, this is the same as giving you the next available number. CAUTION: Do not use cvt numbers in range 40 through 64. This range is used by VTT internally. */   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~4/* VTTTalk glyph 32, char 0x3e (>) */ /* GUI generated Mon Jan 10 10:15:41 2005 */ /* Y direction */ /* X direction */ Smooth()    !"#$%&degiqv|-PBCG8VNI<THfxQEUJZ_AL*K[,`cu3?9:6745@D2>.W)+0bjakhmnolstrz{y/;OX06 %,;?[`z~Sax}    " & 0 : !" &-<@\a{R`x}    & 0 9 !"`\i_&{4>BHNLNDHLL  !"#$%&3?1=45)67+-.82>06 %,;?[`z~Sax}    " & 0 : !" &-<@\a{R`x}    & 0 9 !"`\i_&{4>BHNLNDHLL  !"#$%&3?1=45)67+-.82>@?XUTSRQPONMLKJIHGFEDCBA@?>=<;:98765/.-,(&%$#" ,E#F` &`&#HH-,E#F#a &a&#HH-,E#F` a F`&#HH-,E#F#a ` &a a&#HH-,E#F`@a f`&#HH-,E#F#a@` &a@a&#HH-, <<-, E# D# ZQX# D#Y QX# MD#Y &QX# D#Y!!-, EhD ` EFvhE`D-, C#Ce -, C#C -,(#p(>(#p(E: -, E%EadPQXED!!Y-, EC`D-,CCe -, i@a ,b`+ d#da\XaY-,E+)#D)z-,Ee,#DE+#D-,KRXED!!Y-,%# `#-,%# a#-,%-, ` <<-, a <<-,CC -,!! d#d@b-,!QX d#d b@/+Y`-,!QX d#dUb/+Y`-, d#d@b`#!-,E#E`#E`#E`#vhb -,&&%%E#E &`bch &ae#DD-, ETX@D E@aD!!Y-,E0/E#Ea``iD-,KQX/#p#B!!Y-,KQX %EiSXD!!Y!!Y-,EC`c`iD-,/ED-,E# E`D-,E#E`D-,K#QX34 34YDD-,CX&EXdf`d `f X!@YaY#XeY)#D#)!!!!!Y-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%% F%`#B< XY%%)%%)%% XY%%CH%%`CH!Y!!!!!!!-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%%%% F%`#B< XY%%)) EeD%%)%% XY%%CH%%%%`CH!Y!!!!!!!-,% F%#B%%EH!!!!-,% %%CH!!!-,E# E P X#e#Y#h @PX!@Y#XeY`D-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,KTX8!!Y-,CTXF+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-, #KSKQZX#8!!Y-, IQX@# 84!!Y-,F#F`#Fa#  Fab@@pE`h:-, #Id#SX<!Y-,KRX}zY-,KKTB-,B#Q@SZX TXBYY-,Eh#KQX# E d@PX|Yh`YD-,%%#>#> #eB #B#?#? #eB#B-F##bKPhFSd34632#"&F//ID42C?%ۿ*G?279?^#x 3#'&&5%3#'&&5^j hxj$@j$@u<c-##53266&'#"'&54633#"32c#  [/#  [ /+0 9+0 cHR7472#".c>h>#<4+~\x[ =4C%/ekz (73 4>32#".4632#"&jg4N "+("D2*" F2.FG0/FvdΔ*" (2E *0BH-/B@_x 3#'&&5_ixj$@,"'&'&5467676327#3PnJ 42`fh6 yNd7,%##'3#52 #kgbIOʭ"=N672] 77''7]st~qoH# 53533##5HժکͭR85!Rkz 74632#"&>/*C:3/>d.:<*1;>BBz 73 Bg3N vdΔ~c 4632#"&~ZBAYYABZBZZBAYYx7!wXy!32553#!X2.`lRy+)CN>Bv%3327665332653#"''#"'BF  +NJ]c=#'^921wc - ,@n[@65!#"'&&5C7%042Ou7;rI"%P58:W1nCJm3&5476632!4&#"Jk7{Hlq5*!=b45_a,D1$_*r467632!'354&#"_99qxC~7x3%5'>l4j03b$5Sy 74632#"&4632#"&=).C@,/<9..BB-+=l,<:/-==-8;/(@A 74632#"&472#".@/)C?-/@>h?"<3,d.::,1;>\x[ >3C&.WN5!%5!WCCNxxwwAb"55476554633#3!"5433#3`,/d?A`[cADF+;<)HC@YAb10##53#532##53#532e_gC?c[]iE@d[hH)<;+Fh;+F4$647663#"32#4&'&'&&'&&'&4>32#".H%\5>"07)fC <) %?3Q"++"F2."lY0,&$K ECK 8/Y,&#.2D )r433"72632#'525''#"'&[ 8& B9@ 3E/3EB*   u)#7!34632#"&74632#"&'4632#"&"L=+0=>-+?9.,?=,.;q<*/<58*:,,@>--?>-(DD,.<>(CC.2/9*36323267#"&'&&#"~]0,Q%>F2%L,5)%="k*^ /t3uvt33t\466323267#"&'&&#"\19' ,#2 ()(&  @ \466323267#"&'&&#"\19' ,#2 ()(&  @  ( .#7!3#43323263"332#''72325''#"'&&1K0N4^% *  (;E<?MEc#F0EB #7! ()#7!343323263"332#''72325''#"'&&"L\& *  '?A;?O E,F0EB v  #7!3#4632#"&1K0N4>..?=0-?c#/;?(4:>#7!34632#"&"L>.)C>.,@,-<:./8;{{ 3!3!"74632#"&|&*<0,B?/-?.t.;<,-=>yq3!3'%&54632#"&y$:1#?.-?=/-@k* "q.;<,-=>y !-#7!3#4632#"'4632#"&4632#"&&k>*.?<.k?,.=>*<<*.<<(#7!34632#"&74632#"4632#"&L=-+>://;=(,@?)iq>/'B>,)C,-<90/>>/)@<-.?Z*<<*.<<rq  ,3!3!"74632#"'4632#"&4632#"&s&>*-?=*m>-<<*.:;yq)73!3#%&54632#"&'4632#"&4>32#"&y$ <0!;*+ B-.<;+/CB-*?t&,BB)+?4M "|*<&,=>0+:=-,=A'<-*?:[L !#7!3#4632#"&74632#"&1K0N4;.-?h.?>),B:/0<c#,>=-k>+)C?0.8;U#7!34632#"&74>32#"&"L=+0=h.?&-A<.,B,-=;/i=)'A,.88wv1 "3!3!"74632#"&74>32#"&x&>-0=i,C%.B<-/A.$,>=-k>+&?0.8;vq!'3!3#%"54632#"&74>32#"&v* #Z>-0,/?3M>->:-l=+&@.-89k "-#7!3#4632#"&74632#"&'4632#"&1K0N4B*/AA,-B:*/>>.+:r:*07!7!>|zZZZZ !,3!3!"74632#"&'4632#"&74632#"&&8-/@@*0:;-/=>.,.:*0?>.-:<,0<<.(Bx>(0=m-9j,".BB.,??,.B=0*A?*@C/a=".#7!56&'&&##"#54766763#4632#"&-C)L064.fr. b1<0)C<0.>@2I %#66EW7M%3G{$|^.;<,-=>)#7!54&'&'"&#"#&6763324632#"&5+G ?3./?z%?(  *pW8p^cu+<@).>@L <4632#"&4767%!"3 $#"'&&54676354&&'&#"#&:#%86'$9jIjp^jD:*,h:846e $02)=a!57"%;;qUdAOI*AM.~TDu.[ ,<0VHL4@4767%#!"3 $#"'&&54676354'&'&#"#&4632#"&iIjp\'jD<)-h;644e !.1*=&8$%88%$8uqUdA!# I*AM.~TDu.[ 620VH,!57"%;;"0;I#7!56&'&&##"#54766763#4>32#"&'4632#"&4632#"&-C)L064.fr. b(,D?1.@@--?l.?|<0(<0.>@2I %#66EW7M%3G{$|^';./32#"&4>32#"&'4632#"&13)I>1<[V0.ns} (&=//>s((>//?uB),??-/;rK4(  )qW8p^cu%%39?%&2;?)?>-/8<L )Z4>32#"&74>32#"&74>32#"&4767%!"3 $#"'&&54676354&&'&#"#& )>8*'9!*?:*&:*>9*'9jIjp^jD:*,h:846e-02)=g$5,)::)$5,)::)$5,)::qUdAOI*AM.~TDu.[ I0VH\Lq %[4632#"&74>32#"&%4632#"&4767%#!"3 $#"'&&54676354&'&'&#"#&9()<;*(9"*?=''9*9$*95*(9iIjp\'jD<)-h;644e .1*=`%66%.9>($7)*98&$=8)*79qUdA!# I*AM.~TDu.[ 10VH"#7!56&'&&##"#54766763#-C)L064.fr. b@2I %#66EW7M%3G{$|^#7!54&'&'"&#"#&6763325+G ?3(49?='#7!54'&'"&#"#&6763324632#"&13)I>1<[V0.ns}@,.B>2-?rK4(  )qW8p^cu);;+49?wLJ =4632#"&4767%!"3 $#"'&&54676354&'&'&#"#&E*-@@-/@YjIjp^jD:*,h:846e 02)=)>>-/:>qUdAOI*AM.~TDu.[ 10VH|LZG4>32#".4767%#!"3 $#"'&&54676354&'&'&#"#&*+"D/*!hiIjp\'jD<)-h;644e .1*=&&3D"+qUdA!# I*AM.~TDu.[ 10VHT!5! T37!54'&##532#s j`"у %l2D372!7!5&&'&#"# M3]x "(# BGq%* Xt!37!54'&##532#4632#"&s j`";-.>>.-;у %l2D-?9/0;:t$372!7!5&&'&#"#4>32#"&v M3]x "(# ).?<2+CBGq%* X'>.089LC876636'7#L..?C3fl)?<,28;?jm_ %0727653#4632#"4632#"&74632#"?r,23P݌91)?6/m{?**;-oj$mIe0;CMb *676636'7#4>32#"&'4>32#".4>32#":CKNQi$r<-.>r$/@B/#u&/6+-B;.# y;*-@:,.>f)G32#"&!<0-C)-Cu@-' >/("'%,E?--?+{1A@/&9,H&,?-("A+,>:j+:H3!33333!#!"'&&'&'4632#"&4632#"'&'4>32#"&5 ?*Y$<0-C)-Cu@-' >/("'%,E?--?Y,*E- 1A@/&9,H&,?-("A+,>:^!,7B3!3333#%#"54632#"&74632#"&4632#"&8ߑNI]A*0s5kgw.0G.2c{eI7>#7336676632'56'&&#"U38c0l<9-@&lfa*%;V/o?aPNA$ aSoa&3!36632!#!"&554.#"7V`S`5!(3C,<"jh2AaQU3`R*D4{"=.c+d3^}#03!7336336632#%#!".554.#":GI[WlE@v!!$)!,=#4h1*B_ XRP)mCو'#($q!@1.3$c8'#733632#'54'&#"4>32#"&'>s5kgw.0G'.?$.A.2c{eI7>'=/(?*#7336676632'56'&&#"4>32#"&U38c0l<9-@&lfa* ',DB-.C%;V/o?aPNA$ aSo%?),?@a&&43!36632!#!"&554.#"4632#"&5V`T`4!*4C,<"kh1DD.'C/+BaQU3`R*D4{"=.c+d3-?'-=>^~!"/;3!336336632#%#!".554.#"4632#"&;IHYVus%,#.<"5i4(CB.,B?/-C_XRPTو'"$q!@1.3$c8-??.-9:x#733632#'56'&#""ʼnms{b(,T\v}X_x^T6;ckUn#7353667632'54.#"3S!`imo+;"1h50AC,:0Z\jx">//3,a5ft3733667632'54&'&#"fQ1gZm|0E[yx%62QUUt#=6f`_q|$7536653667632#'54.#"qQ3`mg3="z->"2g8/BѤH&?(SV#1 5q"A/.3)d2x&#733632#'74'&#"4632#""Êlszc),S*m<}@+(;1kX_x^T6;03kU)C#4<n,#7353667632'54.#"4>32#"&1T_llp,9"3i50@'*C=--AC,:0ZZjx">//3,a5'C)/>=t&3733667632'54&'&#"4632#"&Q1gZm|0E[yx@+/??/+@%62QUUt#=6f`_-@?-,:9|$2753536676632#'54.#"4632#"&R32e2j49%z->"3h7/@A)*!D-,AG&?SV#1 5q"A/.3)d2->'-<<'#7!&546763!2#&&'&##"3!#!5KhcHTg^-8  -@;"$)4i8x:i/\(c2$;%9<,*85*,%#7!&&'&5!2333 54&#!"-j.!o;@ !L g _<L;>N*4>2FD4%2f] >PO\q-<467667&'&54663!23!"3!!"&'&'&$3>54&#!"7*N*|y5Xva10$ -!H$)pNrQS 3*JAPOz^u:47667&54763!2#&&5&&#"3!#'&##"3!!"&'&z+ ?/df^m^(,  ~h6.5'2}H5Xq &'3]-_scA=(faef9L! <: G55)&e""35f'2#7!&546763!2#&&'&##"3!#4632#"&!5KhcHTg^-8  -@;"$)4i88..>l.8x:i/\(c2$;%9<,*85*,)C=.k; %34>32#"&7!&&'&5!2333 54&#!" '-@>..@j.!o;@ !L g _<L;>N$ ?)0:>*4>2FD4%2f] >POP\B :I4632#"&467667&'&54663!23!"3!!"&'&'&$3>54&#!"@.'!p.@p7*N*|y5Xva10$ -!H$)pNrQS 3*JAPOW^S'9G47667&&54763!2#&&5&#"3!#!".#"3!!"&'&4632#"&W* ?/EEfbbl`J(Վ,32%1./V!z'$2^/[?+)C/+?scA=(4Seafpv G55)*j("35d-D)-9=%#735476633#'3#"4>32#"&-;W *g̕",#$&(-CD+1Aٲ`)$6L;1)?.077$#73467676676633%3#"4632#"&( , /"$- &. 7-.?=--:m"w=."-=A+,;<#3!5467633!"73#"4632#"&->9o)+$);0-??./;M~4c."/[V63D);  -=%$!-<<#3#735476633#'3'"4632#"&74632#".'>Q#R& !+9-/BB/06@(*C-&٭X,*X$6 $.:>/-;=,)C(+@& $2#73547633%3&#"4>32#".'4632#"&-~ $V!&.=?,'!>/&B*,@٠`[( "'?--?')C'-??z 284>32#".'4632#"&3!5!>33#&&'35#""'/<>-( =/'A+)B <4%(Cp(?,.> &(C&.>> ykI)<#-zwz$283!5!>33#&&'4>32#".'4632#"&35#"w<3&'i"&.=>-(=/'A+*AɋoykI)<#-&@+/='(C(/==\z (#7!54.#"&'&54763!!"336332#(/!2SW0*1r WX*z"^ EۅV]C'n<# ##7!54&#"&'&546763!!"336332--:#3'/S-(1p V\)x^$1ICl,]C'nA%3!54.#'&'&54763!!"32!"7) PK]Vx&"C>$n ``yV\$!!41 /x~c.3!5&##"&'&5476337!!"332#%"5~"5Et*WJUvm e0&7;%0 6V!W:&}N*,W{\c! %CIX"A'+#7!54&#"&'&546763!!"336332#5!,.:$3&,T0(3r@-\*|#^$1ECl,]C'n<#PHH%)#7!54&#"&'&546763!!"3363325!,.;#2(.T0)1p V[*v^$1ICl,]C'nBR*,QHHz&*3!54.#'&&'&54763!!"32!"75!&!Fn)M\\w% % n 02_yV\$ e /xIIy].23!5&##"'&5476337!!"332#%"55!y"5ϒUZOPxo h0*;R/ 6X V!}NV\x_c! %C GZ"FFt 5!3#3X`o(Mt 75!33R-Fm #733#'"( +$)h#733'dy3!3#"&''"&'&5.iL*)^=Uh ,fy3!3#"&&'"&'&5/!dN(+^=anLJ)h -@#73!2#%354&'&##&1B#7!34632#"&!M>./>94*B,/;;//;>33!3#!"'&54632#"&>"))(,"?*-CC)/>U'!'!%,G@.)B;33!3#!"&'&54632#"&>!+**@/.?(/@U'! &,G@.&;Z5327665'!467633#3#"yy>&+?>xmj+*AZN6It2^po>(Z5327665'!467633#3#"zy=&*=>yjh**BZN6It2^po>(!#7!47>553%35.'5+ |538RR%L 6((3 A2O1lkZF .:C$!#7!47>553%35.'5+ }447SQ%L 6((3 A2O1lkZF .:C$#476323353#6654&5# 32765'#"ws8$$W>a& ?b`2,<Px`k"*g 7467632%354.#"%$xwqu *O.$O2rprֺ%Y "#7!3#4632#"&74>32#"&3&k>./=j,B&-B<./?c# /<;0g:-'>..88#7!34632#"&74>32#"&K<-0=j-? "/B<0,>,,=90m>.%@/.9=W^3!5&#"'&&'5!"#".5 Ru'*' m.'P ;4M$oKx,$I;.3!54&##"'&54>3!!"32#%"&'&5./uJS0UrE["J'5MLf/3VVnEsR- /&W&9J#"'&'#"'&54763273327654&#"3267! '&!24&#"327676Xd7!H^n:3JXs! XV@A:ܺ~׋K] /N='_C7"'F#))''=xTIq^JiA{Jڍwq  d)9wjF15%'A !!!632 APPE14awX B %#!!254&#!!254#!!2@Bxb-fk#<=9{FIq;ì51P'nLH-5!"'&5463!2&#"3!/nB=yK#= NIsu D=)? %#%!24#!!276F=][:6 8Z35! 5463!!"!!3!5u `17 v 36 ''!#4763!!"!'H=VX)96LI!!"'&5463!&#"332653۰=6L%4VE/B 2X= #!#3!3g )-><#3< ? %!#232653A -#-E8^ !&'54767!#3RRTT @7FF %!"&533F)OL>##"'#463267632)}){bRu=8Oey T3dRLPL))d=%#"'#476323uZ68;`1XfFNNiB %!! !! 4&##"332 - %-1!%1R /%%//#+w#"&##!254#!3276whP/!NoA1u9+ R}qs@>2!'!! 4&##"3326-$0RX"2/%%/.&ήZ\DPA /%%//#H!&'&547633276554###!2#"#RTy>$Z=%PRsj @j# /mHXsn5)&%#!!27654'&'&55463!!"32232)w G5odH+K ) @\u)b8/q{% Z/ #5'###!X>!! 3332653 B3# )'2X 7 #"'!711 ݔ#PA#"&'#"&'36632 sIJq bPuJJp T hNTh SIccI=IccIMqjTr< 9 !!!!9-- lbFP-D#&&'!Dkj##jk#f1fCI!!"'&5467!!2IՍ]=Hم-nLbPѽ'/ZR3cT{!!#3{'HH -T!53#5!TFF' A#]&%#!"'&554763236'&#!5!254##"332sZf:C\H' -;;-#5Xy15b5'1 dB/-D3%#!"5326324&##"33267:\'F^#A9)`>C)5iR)?5>]!"543!"&#"3!1%6  .'5%#!"&547632334&##"3326^o\H''A7'b5)M>^ ?79]3!!"5463!254&##"-yc1fm%+AbosfB\H##47633"3ǞKD`k#{e^93\@+]&#!5!255"# 5463!24&##"3326+|gA)mx)m39):'fH%}w'-i^T;')?#4##"#3263 /?)/ VEG%= #"&54632#3=T9:QO<9TF9TR7=VVa}3 #"&54632##522325T<7RP;8V}l  \F9TR7=VVl{FR> !&54767!#3>j;@ =dgR1=#3 E]"#4#"#"#4#"&#"#463326332\ / 9: -\m`-+`lZXE9b9E`wNNwE"]#4##"#43!2"JH7 \??! ] %#!"&54763!24&##"3326 }bb}?>b-b}bffbb52gbn<)))-=!] %!"&#&4763!24&##"3326!%-14fAkm %F h@F{iT)F%A$]#"# 5463!24&##"332$'ohBf5/%!ENi{F@h1)%<] "&#"#433 / V{K7]!"#!5!254'&'&55463!Bu9s+17r3sy`{?)+:vA''^kN##33Řߘ{eE"]%#!"5333253"HJAA[p] #"'3pT1q%]-6c']!i#"&'#"&'36632bJCe G:fDJd{L TBAR N{]I_ZF=D\_IDXZBq)] !'!!7!)l{ ZA!]#!5!255"#"'&5333253!6;b?#F^;C|eCJL!(6JRJ/]!!"'&547!5!2/&GO6;59<F#{)-KB1+$3?!'##"'&54767&'&54633245!4&#"676'32+#LhuPXy@whFLw -36%%@ )13 ++AHu3TJ^/v:?i{b+PVRA )#9%='N0j %#7&54632j3%%QQT9;T_6hHI%`9VZWe!5!esWEޒ_<< F} x^ucei_]HRB4~SXnBUd=eC`Jl_W|A5h\\{{y&qrybvwv3>z\rw|ttLV)HV?Mfqiazi2PvW4 47w~zyQ8Lz3Q&f'B^-?h3P'I={>/?^wF>=B+>H^5H'>f Af V-bT-)#N3>T5R9Hm@`?d%3yR\=EhE-!`=fA<7NhEd!'`AH1NV$$R$S$T$Up$V$W$$%R%S%T)$@)R4$P4R4S4T4U8$@8R8S8T8U<RVRVSVTVUVVV$ $$`$P$P$P3X!C]q~$K+Q~:b9| 0] r H U 4 a g  h G:sKH]QhF;VEOLAz+j2KbvJvKz  A v !!!!!"#"K"h"""""# #8#Y###$$M$`$$$$% %3%E%W%%%& &8&T&&&&'''O'i'''((D(V(p((())$)))\/Y#>44;B[ bo&v   h 1 ? 2M    L   1 ? MCopyright (c) Hamoonsoft, 2004. All rights reserved.NPIMinaRegularHamoonsoft: NPIMina: 2004NPIMinaVersion 2.012NPIMinaNPIMina is a trademark of Hamoonsoft.HamoonsoftHossein ZahediNPIMinaRegularNPIMinaCopyright (c) Hamoonsoft, 2004. All rights reserved.NPIMinaRegularHamoonsoft: NPIMina: 2004NPIMinaVersion 2.012NPIMinaNPIMina is a trademark of Hamoonsoft.HamoonsoftHossein ZahediNPIMinaRegularNPIMinad_A  !"?C^`abcdefghjikmlnoqprsutvwxzy{}|~#$%&'()*+,-./0123456789:;<=>@DEFGHIJKLMNOPQRSTUVWXYZ[\] BEuromacron@rvn)trdrC)pndnBia)gedeC)cadaBYQ)WUdUC)SQdQBLD)JHdHC)FDdDBCABA*U * U*U*U *U*UTSKRKP[XYBKSXYKSXBY++++++++++++++++++++++++++++++